请问js获取元素offset和JQuery获取元素offset为什么有区别?求原理

javascriptdocument.getElementById('box1').offsetTop;

$('#box1').offset().top;
阅读 3.1k
1 个回答

主要是做一些文档类型,兼容性的判断,然后通过HTMLElement的getBoundingClientRect方法获取
关于这个方法,你可以参考MDNhttps://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingCl...
里面有讲这个方法的兼容性问题

整个offset源码也不多,你可以看下(jquery-1.11)https://github.com/jquery/jquery/blob/1.11-stable/src/offset.js

里面有个document.defaultView,可能会比较难理解,你可以参考下愚安我以前的blog,
http://codedocker.com/document-defaultview/

还有问题 可以留言

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题