zoukankan      html  css  js  c++  java
  • js 盒子模型(没写完)

    盒子模型

      盒子模型包括margin、border、padding、content  

      js盒子模型的方法可分为:尺寸类、距离类、其它类 

      client系列、offset系列、scroll系列、getBoundingClientRect()  返回值都是不带单位的数字

    尺寸类:

      元素的尺寸,返回值不带单位的:

        clientHeight / clientWidth    支持(会计算)padding,不支持border

        offsetHeight / offsetWidht   支持padding,支持border  在没有设置固定宽高的时候,走被内容撑开的高度。

        scrollHeight / scrollWidht   支持padding,不支持border  但支持被内容撑开的高度。

        clientTop / clientLeft  上边框 / 左边框

      元素的尺寸,返回值带单位的:

        style.height / width  获取行间的样式。

        getComputedStyle(obj).height / width  得到元素对象计算后的样式,只能获取,不支持padding

        obj.currentStyle.height / width  也是得到计算后的样式,(同上)。用于IE低版本。

      可视区的尺寸,返回值不带单位的:

        document.documentElement.clientWidth / document.documentElement.clientHeight (会计算滚动条的宽度)

        window.innerHeight / window.innerWidth  (不计算滚动条的宽度)

    距离类:

      offsetTop / offsetLeft  从子元素的上 / 左外边框到定位父级的上 / 左内边框的距离(如果没有定位父级,默认走body)

      定位父级:offsetParent  (let box = box1.offsetParent,可读,可写)

      ev.clientX / ev.clientY  鼠标到可视区(基于可视区)的 x、y 值

      ev.pageX / ev.pageY  鼠标到可视区(基于页面)的 x、y 值

    绝对位置的计算:ele.getBoundingClientRect().top / left / right / bottom 

    ele.getBoundingClientRect().left  得到当前元素左外边框到body的左边的距离,也可以用下面的例子实现:

      let obj = box3;
      let l = 0;
      let box3L = box3.clientLeft;
      
      while (obj) {
        l += obj.offsetLeft + obj.clientLeft;
        obj = obj.offsetParent;//让这次的box,变成上一次的定位父级,再次循环是就能拿到下一段距离。
        console.log(obj);
      }
      l -= box3L;
      console.log(l);

    滚动距离:

      window.pageXOffset / window.pageYOffset  只能读不能写

      document.documentElement.scrollTop   能读也能写

      document.body.scrollTop       ( IE)

      window.scrollTo(x,y)   专门用来写滚动条的距离的

      例子:ele.scrollTo(0,100)  有滚动条的时候使用,让元素滚动到指定的位置,单位px

       document.onclick = function(){
            //window.pageYOffset = 100;//点击没有效果,
            //document.documentElement.scrollTop = 100;//有效果
            window.scrollTo(0,100);//有效果
        }
  • 相关阅读:
    作业八
    作业七:用户体验设计案例分析
    作业六。合作编程
    作业五:需求分析
    作业四:结对编程2
    作业四:合作
    作业三:词频统计
    学习进度表
    java程序练习
    简单博客练习
  • 原文地址:https://www.cnblogs.com/MrZhujl/p/9949772.html
Copyright © 2011-2022 走看看