js实现jquery的offset()方法实例
本文实例讲述了js实现jquery的offset()方法。分享给大家供大家参考。具体分析如下:
用过jQuery的offset()的同学都知道offset().top或offset().left很方便地取得元素相对于整个页面的偏移。
而在js里,没有这样直接的方法,节点的属性offsetTop可以获得该节点相对于父节点的相对偏移,但不能直接获得其绝对偏移,我们可用节点逐层递归向上来相加offsetTop来获得绝对偏移。
if (!offset) {
offset = {};
offset.top = 0;
offset.left = 0;
}
if (Node == document.body) {//当该节点为body节点时,结束递归
return offset;
}
offset.top += Node.offsetTop;
offset.left += Node.offsetLeft;
return getOffset(Node.parentNode, offset);//向上累加offset里的值
}
使用时,则如:
//getOffset(a).top
//getOffset(a).left
希望本文所述对大家的javascript程序设计有所帮助。
相关文章
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
这篇文章主要介绍了JavaScript实现的仿新浪微博原生态输入字数即时检查功能,涉及javascript事件响应及字符串的遍历、转换、判断等相关操作技巧,需要的朋友可以参考下2017-09-09
javascript完整操作Table的增加行,删除行的列子大全
非常漂亮的js操作table行代码函数。比较方便2008-10-10
JavaScript中Object、map、weakmap的区别分析
这篇文章主要介绍了JavaScript中Object、map、weakmap的区别分析,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下2020-12-12
JSON序列化与解析原生JS方法且IE6和chrome测试通过
JSON序列化与解析本文通过原生JS方法实现,IE6和chrome下均测试通过,喜欢的朋友可以尝试操作下2013-09-09
详解如何使用JavaScript中Promise类实现并发任务控制
在JavaScript中,Promise是一种用于管理异步操作的强大工具,但是,有时候需要更高级的控制,以限制同时执行的任务数量,以避免系统资源超负荷,本文将深入探讨JavaScript中的并发任务控制,并介绍如何创建一个自定义的Promise类——ConcurrentPromise2023-08-08


最新评论