先看看官方定义:
返回当前元素的上边界到它的包含元素的上边界的偏移量,以像素为单位。
<!doctype> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> </head> <body style="margin:0px;overflow:scroll;"> <div style="background-color:blue;width:200px;height:200px;overflow:scroll;"> <div style="height:60px;width:60px;background-color:green;border:1px solid #ccc;"></div> <div style="height:60px;width:60px;background-color:green;border:1px solid #ccc;"></div> <div style="height:60px;width:60px;background-color:black;border:1px solid #ccc;"></div> <div style="height:60px;width:60px;background-color:green;border:1px solid #ccc;"></div> <div style="height:60px;width:60px;background-color:green;border:1px solid #ccc;"></div> <div style="height:60px;width:60px;background-color:green;border:1px solid #ccc;"></div> <div style="height:60px;width:60px;background-color:green;border:1px solid #ccc;"></div> </div> <script> var divs = document.getElementsByTagName('div'); for(var i=0;i<divs.length;i++){ divs[i].onclick=function(e){ e = e || window.event; alert(this.offsetTop+'==='+this.offsetParent); if(e.stopPropagation){ e.stopPropagation(); }else{ e.cancelBubble = true; } }; } </script> </body> </html>
offsetTop,返回当前元素的上边界到它的包含元素的上边界的偏移量,以像素为单位。
什么叫偏移量,就是指绝对位置。
小黑div元素,距离body的距离,绝对位置永远是124px。
不管你的滚动条如何滚,虽然视觉位置,小黑div元素和body的距离缩小或扩大了。
那么,如何获取视觉位置呢,
请用,this.getBoundingClientRect().top