JS——位置属性
你是否为style.top style.left style.width style.height ; offsetWidth offsetHeight offsetTop offsetLeft scrollTop scrollLeft 烦恼过,是不是傻傻的分不清楚,如果是的话,请不要担心,因为你现在已经会了
获取一个div的宽高,
<style> div { width: 100px; height: 100px; } </style> </head> <body> <div id="d1" ></div> <script> var t = document.getElementById("d1"); alert(t.offsetWidth); alert(t.offsetHeight); alert(t.style.width); alert(t.style.height); </script>
此时,用offset的可以获取到,而用style的返回的都是空,如果用的是行内样式的话,上面2中方法都能获取的到,所以呢,大部分情况下,如果想要获得一个元素的宽和高的话,我们一般都是使用offset,对于一个没有样式的div的话哈,它的offsetWidth就是当前浏览器窗口的宽度(最大化和最小化的时候值不一样),而offsetHeight是0.
offsetTop和offsetLeft这2个属性是指当前元素到其父级元素的顶部和左侧的距离,一定是其父级元素的距离,有时候呢,我们可能会要求得到某一元素到浏览器的顶部和左侧距离,但是该元素和浏览器顶部左侧之间不知道有多少个父级,这时候我们就需要自定一个通用的方法来达到我们的目的
function T(obj) { var lo = 0; while (true) { if (obj.nodeName == "HTML") { break; } lo += obj.offsetTop; obj = obj.parentNode; alert(lo); } return lo; }
scrollTop竖直滚动条滚动了多少
scrollLeft水平滚动条滚动了多少
浙公网安备 33010602011771号