关于DOM元素定位属性的深入学习
以前写JS程序的时候,经常碰到了定位的问题。但每次都看到一半,找到需要的属性就了事了。
今天下了狠心,要花点时间,彻底地弄明白他。
以下内容看着有点眼熟也不用奇怪,因为是参考了多篇前辈的文章汇总而成,嘿嘿。
宽度、高度
jQuery(’#elem’).width() // 获取CSS定义的宽度
jQuery(’#elem’).height() // 获取CSS定义的高度
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
scrollWidth // 对象的滚动宽度
scrollHeight // 对象的滚动高度
clientLeft // borderLeftWidth
clientTop // borderTopWidth
Left、Top
scrollTop // 对象左边界和窗口中目前可见内容的最左端之间的距离
scrollLeft // 对象最顶端和窗口中可见内容的最顶端之间的距离
offsetTop // 距相对父节点的顶端位置
offsetLeft // 距相对父节点的左侧位置
父节点
parentNode // 就是父节点。从结构上理解并应用它。
offsetParent // 是相对父节点。从布局上理解并应用它。
鼠标相对于浏览器的 x, y 坐标
e.clientX, e.clientY
鼠标相对于触发事件容器的 x,y 坐标
e.offsetX, e.offsetY // for IE
e.layerX, e.layerY // for FF
垂直方向滚动的值
document.documentElement.scrollTop
document.body.scrollTop (Quirks Mode)
鼠标相对于页面顶部的 x, y 坐标
pageX, pageY // for FF
e.clientX + document.documentElement.scrollLeft // for IE
e.clientY + document.documentElement.scrollTop // for IE
相对于Body的padding以内的绝对坐标
jQuery(’#elem’).offset();
相关推荐
Vue和React是数据驱动视图,如何有效控制DOM操作?能不能把计算,更多的转移为js计算?因为js执行速度很快。patch函数-->patch,对比tag,对比tag与key,对比children