首页 > 代码库 > 获取元素在浏览器中的绝对位置(从jquery1.8中抠出来)
获取元素在浏览器中的绝对位置(从jquery1.8中抠出来)
<style>html,body{margin:0;padding:0;}.d1{margin-left:40px;background:red;width:2000px;height:100px;position:relative;}.d2{margin-left:40px;background:blue;width:1000px;height:80px;}</style><div id="d1" class="d1"> <div id="d2" class="d2"></div></div>
1 function getWindow( elem ) { 2 return mylibs.isWindow( elem ) ? 3 elem : 4 elem.nodeType === 9 ? 5 elem.defaultView || elem.parentWindow : 6 false; 7 }; 8 9 var mylibs = {10 isWindow: function( obj ) {11 return obj != null && obj == obj.window;12 },13 //获取元素在浏览器中的绝对位置14 offset:function(elem){15 var docElem, win, clientTop, clientLeft, scrollTop, scrollLeft,16 box = { top: 0, left: 0 },17 doc = elem && elem.ownerDocument;18 19 docElem = doc.documentElement;20 //黑莓5 ios3(iphoe) 没有getBoundingClientRect21 if ( typeof elem.getBoundingClientRect !== "undefined" ) {22 box = elem.getBoundingClientRect();23 }24 win = getWindow( doc );25 26 clientTop = docElem.clientTop || document.body.clientTop || 0;27 clientLeft = docElem.clientLeft || document.body.clientLeft || 0;28 scrollTop = win.pageYOffset || docElem.scrollTop;29 scrollLeft = win.pageXOffset || docElem.scrollLeft;30 return {31 top: box.top + scrollTop - clientTop,32 left: box.left + scrollLeft - clientLeft33 };34 }35 };36 37 document.getElementById(‘d2‘).onclick = function(){38 alert(mylibs.offset(this).left);39 };
获取元素在浏览器中的绝对位置(从jquery1.8中抠出来)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。