黑马程序员技术交流社区

标题: 【广州前端】js中常见的位置属性-offset,scroll,client系列 [打印本页]

作者: 李盼盼老师    时间: 2018-1-18 15:07
标题: 【广州前端】js中常见的位置属性-offset,scroll,client系列
本帖最后由 李盼盼老师 于 2018-1-18 15:16 编辑

查看更多精彩前端资源

【前言】
       Javascript中的offset、scroll、client系列都是比较常用的坐标属性,也是比较容易混淆的知识点,在面试中也经常会碰到区分这三者的面试题

【offset家族】
       offset家族一般在节点对象里面使用
       offsetParent
             1.    如果当前元素的父级元素没有进行css定位(position为absolute或relative),offsetParent为body
             2.    如果当前元素的父级元素中有ccss定位(position为absolute或relative),offsetParent取最近的那个父级元素
       offsetLeft/Top计算规则:
             标准流、浮动、非脱标定位
              offsetLeft = 自己的margin+offsetParent的margin、padding、border
              脱标定位
              offsetLeft = 自己的left + margin-left
              注意:与stlye.left的区别
              offsetLeft只可读,不可写。也就是说,通过offsetLeft只能获取元素的左偏移值,而无法去设置元素的左偏移值
               stlye.left可读可写,但是通过style.left获取元素的偏移值,是一个带单位的字符串,例如“100px”。
            (offsetTop同理)
       offsetWidth(和offsetHeight:
其实就是一个元素的实际宽度 = width+padding+border

client家族】
        clientWidth (clientHeight) = width+padding
              该属性指的是元素的可视部分宽度和高度
              假如元素有padding有滚动,且滚动是显示的
              clientWidth = width + padding - 滚动轴宽度
       clientTop(clientLeft):
             这一对属性是用来读取元素的border的宽度和高度的
             clientTop = border-top 的 border-width
              clientLeft = border-left 的 border-width

【scroll家族】
        如上图所示
       scrollWidth(和scrollHeight
          无滚动轴时:scrollWidth = clientWhidth = width + padding
          有滚动轴时:scrollWidth = 实际内容的宽度 + padding
       scrollTop(和scrollLeft
           这对元素是可读写的,指的是当元素其中的内容超出其宽高的时候,元素被卷起的宽度和高度


【事件里面的clientXoffsetXscreenX

【window系列】

window.screen包含了屏幕的信息

      







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2