DOM三大家族(offset系列 & client系列 & scroll系列)以及其他常用坐标和尺寸属性总结

offset系列

  • el.offsetParent
    表示元素中带有最近定位的祖先元素,祖先元素都没有定位则返回body

  • el.offsetTop
    表示元素距离其offsetParent上方的偏移

  • el.offsetLeft
    表示元素距离其offsetParen左边框的偏移

  • el.offsetWidth
    元素实际宽度 左右border+左右padding+width

  • el.offsetHeight
    元素实际高度 上下border+上下padding+height
    以上属性返回值不带单位

offset VS style
offsetstyle
获得的数据没有单位带单位的字符串
得到任意样式表样式只获取行内样式
offsetWidth包含三部分style.width只包含width
offsetWidth只读属性style.width可以读写

client系列

可以动态获取元素边框大小、元素大小

  • el.clientTop
  • el.clientLeft
  • el.clientWidth
  • el.clientHeight
var oDiv = document.querySelector('div');
console.log(oDiv.clientTop); // 返回元素上边框宽度
console.log(oDiv.clientLeft);// 返回元素左边框宽度
console.log(oDiv.clientWidth);// 返回元素宽度 padding+内容宽
console.log(oDiv.clientHeight);// 返回元素高度 padding+内容高 结果不带单位

scroll系列

  • el.scrollTop

    被卷去的上侧距离

  • el.scrollLeft

  • el.scrollWidth
    自身实际宽度 不含边框

  • el.scrollHeight
    自身实际高度 不含边框,卷上去的总共高度

// 滚动条发生变化触发
box.addEventListener('scroll',function() {
     console.log(this.scrollTop); // 被卷去的上侧距离
})

鼠标坐标值

var oDiv = document.querySelector('div');
oDiv.onclick = function(e) {
    console.dir(e);
    // 返回鼠标相对于浏览器窗口可视区坐标
    console.log(e.clientX, e.clientY);
    // 返回鼠标相对于电脑屏幕坐标
    console.log(e.screenX, e.screenY);
    // ie9+ 相当于文档页面
    console.log(e.pageX, e.pageY);
}

尺寸属性

Element.clientHeight   // 返回元素节点可见部分的高度
Element.clientWidth   // 返回元素节点可见部分的宽度
Element.clientLeft   // 返回元素节点左边框的宽度
Element.clientTop   // 返回元素节点顶部边框的宽度
Element.scrollHeight  // 返回元素节点的总高度
Element.scrollWidth  // 返回元素节点的总宽度
Element.scrollLeft   // 返回元素节点的水平滚动条向右滚动的像素数值,通过设置这个属性可以改变元素的滚动位置
Element.scrollTop   // 返回元素节点的垂直滚动向下滚动的像素数值
Element.offsetHeight   // 返回元素的垂直高度(包含border,padding)
Element.offsetWidth    // 返回元素的水平宽度(包含border,padding)
Element.offsetLeft    // 返回当前元素左上角相对于Element.offsetParent // 节点的垂直偏移
Element.offsetTop   // 返回水平位移
Element.style  // 返回元素节点的行内样式
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值