js和JQuery中offset等属性对比
HTML:
内容在滚动条下面 <div id="outerDiv"> <div id="myDiv" class="myDiv">会员视频下载</div> </div>
CSS:
* { margin: 0; padding: 0; } html, body { width: 400px; height: 300px; } #outerDiv { border: 1px solid red; margin-left: 100px; margin-top: 800px; position: relative; width: 100%; height: 100%; } .myDiv { width: 200px; line-height: 50px; font-size: 15px; margin-top: 200px; margin-left: 100px; border: 5px solid black; transition: all .5s ease-in-out; background-color: red; color: #FFF; text-align: center; font-weight: bold; position: absolute; left: 0; top: 0; padding: 5px; }
JavaScript:
$(function() { var myDiv = document.getElementById("myDiv"); var offsetHeight = myDiv.offsetHeight; // 70=50+5*2+5*2(包括本身高度+padding+border) var offsetTop = myDiv.offsetTop // 200=相对于父元素,即outerDiv的距离 var $offsetTop = $(myDiv).offset().top; // 1019相对于浏览器顶部的距离,包括滚动条(JQuery) var offsetLeft = myDiv.offsetLeft; // 100=相对于父元素,即outerDiv的距离 var $offsetLeft = $(myDiv).offset().left; // 200相对于浏览器的距离(JQuery) myDiv.onclick = function() { var ev = event || window.event; var clientY = ev.clientY; // 鼠标点击时距离浏览器顶部的距离(不包括滚动距离) // 获取滚动条距离顶部的距离(第一部分兼容chrome,第二部分兼容IE) var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; // JQuery中获取滚动条距离顶部的距离 var $scrollTop = $(document).scrollTop(); } });
链接:http://codepen.io/anon/pen/epYbog