关于js获取dom 节点到浏览器顶/左部的距离,Jquery里面有封装好的offset().top/offset().left,只到父级的顶/左部距离position().top/position().left;
原生写的话就是用获取节点,do while循环就可以了。代码如下
<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<meta name="viewport" content="width=device-width, initial-scale=1.0"> ???<meta http-equiv="X-UA-Compatible" content="ie=edge"> ???<title>原生JS获取DOM 节点到顶部的距离</title></head><body> ??<ul> ??????<li>11111</li> ??????<li>11111</li> ??????<li>11111</li> ??????<li>11111</li> ??????<li id="item">11111</li> ??</ul> ???<script> ???????var dom = document.getElementById(‘item‘); ???????var iTop = 0; ???????do { ???????????iTop += dom.offsetTop;//如果是左侧就是offsetLeft ???????????dom = dom.parentNode //如果DOM 节点 的parentNode存在,把当前的节点赋予成parentNode; ??????} while (dom.parentNode); ???????console.log(iTop) ???</script></body></html>
原生JS获取DOM 节点到浏览器顶部的距离或者左侧的距离
原文地址:https://www.cnblogs.com/huzhuhua/p/10215984.html