DOM—元素大小—元素偏移

一、元素大小

offsetWidth
offsetHeight
注:
1》offsetWidth、offsetHeight是没有加入单位的 (返回是number数值类型)
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移

#区分:与getComputedStyle字符串类型(加了单位的)不同
JavaScript DOM——元素大小、元素偏移

JavaScript DOM——元素大小、元素偏移

2》可以计算的两个值
a)计算边框 (border)
b)计算内边距 (padding)
不能记算外边距 (margin),和盒子的宽度没有关系(外边距和大小是不同的)
JavaScript DOM——元素大小、元素偏移
border:
JavaScript DOM——元素大小、元素偏移
padding:
JavaScript DOM——元素大小、元素偏移

案例:写一个定时器每隔50毫秒,实现box盒子宽度增加2像素
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
如果加了边框,减4px,盒子向左移。但是如果减2px,盒子不改变;减1px,反而会加,盒子往右移。
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移

原因是:offsetWidth会计算边框和宽度,当减1px时,offsetWidth实际为202px,现在减1px=201px,而201px赋给它width(200px),那么相当于加了1px。再隔50毫秒执行,即201px加2px=203px,再减1px就=202,所以box又增加1px。
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移

二、元素偏移

offsetLeft
offsetTop
注:
1》是没有加入单位的 (返回是number数值类型)
2》计算: 计算margin
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移

3》定位的关系
a》如果没有定位,返回元素左侧距离浏览器左侧的偏移量

JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移

b》如果有定位,返回元素左侧距离和定义元素距离的偏移量

JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移
JavaScript DOM——元素大小、元素偏移

滚动的距离
点击按钮来检测拖动滚动条的距离

JavaScript DOM——元素大小、元素偏移

相关文章: