• 技术文章 >web前端 >js教程

    使用js要如何计算元素的位置

    青灯夜游青灯夜游2021-08-09 19:40:55原创504
    在之前的文章《JS数组学习之清空全部元素的4种方法(代码详解)》中,我们介绍了4种JS中清空数组,删除数组全部元素的方法。这次我们来介绍一下使用js计算元素位置的方法,有需要的可以参考参考。

    在javascript中,元素的位置可以分为两种:一种是相对于浏览器视窗的绝对位置;另一种是相对于父节点或 body 元素的偏移位置。下面我们就来了解一下获取两种元素位置的方法。

    1、js计算相对于浏览器视窗的元素绝对位置

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>获取元素的绝对位置</title>
    <style>
    	*{
    		margin: 0;
    		padding: 0;
    	}
       #div1{width:100px;height:100px;border:3px solid red;}
       #div2{width:70px;height:70px;border:3px solid blue;position:relative;}
       #div3{width:50px;height:50px;border:3px solid green;position:absolute;
            left:20px;top:10px;}
    </style>
    </head>
    <body>
      <div id="div1">
        <div id="div2">
          <div id="div3"></div>
        </div>
      </div>
      <script>
        var div3 = document.getElementById('div3');
        div3.getBoundingClientRect().bottom+"px";
    			   
    	console.log("div3元素左外边框距浏览器视窗的距离为:");
    	console.log(div3.getBoundingClientRect().left);
    	console.log("div3元素右外边框距浏览器视窗的距离为:");
    	console.log(div3.getBoundingClientRect().right);
    	console.log("div3元素上外边框距浏览器视窗的距离为:");
    	console.log(div3.getBoundingClientRect().top);
    	console.log(" div3元素下外边框距浏览器视窗的距离为");
    	console.log(div3.getBoundingClientRect().bottom);	   		   
      </script>
    </body>
    </html>

    分析:(前提,将body 节点的默认内外边距去掉了)

    我们看看输出结果是不是这样的:

    0.png

    在这段代码中,要介绍2个重要的方法:getElementById()和getBoundingClientRect()。

    getElementById()方法可以根据指定id值来获取到元素对象(该方法可返回对拥有指定 ID 的第一个对象的引用)

    而元素对象的getBoundingClientRect()方法可以获取元素相对于浏览器视窗的位置,它会返回一个 Object 对象,该对象有 6 个属性:top、left、right、bottom、width、height:

    2、计算相对于父节点或 body 元素的偏移位置

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>获取元素的偏移位置</title>
    <style>
    *{
    	margin: 0;
    	padding: 0;
    }
       #div1{width:100px;height:100px;border:3px solid red;}
       #div2{width:70px;height:70px;border:3px solid blue;position:relative;}
       #div3{width:50px;height:50px;border:3px solid green;position:absolute;left:20px;
              top:10px;}
       #div4{width:30px;height:30px;border:3px solid olive;position:absolute;left:20px;
                 top:10px;}
    </style>
    </head>
    <body>
      <div id="div1">
        <div id="div2">
          <div id="div3">
              <div id="div4"><div>
          </div>
        </div>
      </div><br /><br /><br /><br />
      <div id="content"></div>
      <script>
       var div2 = document.getElementById('div2');
            var div4 = document.getElementById('div4');
            console.log("div2的水平偏移位置为:");
            console.log(div2.offsetLeft);
            console.log("div4的水平偏移位置为:");
            console.log(div4.offsetLeft);
            console.log("div2的垂直偏移位置为:");
            console.log(div2.offsetTop);
            console.log("div4的垂直偏移位置为:");
            console.log(div4.offsetTop);
      </script>
    </body>
    </html>

    分析:(前提,将body 节点的默认内外边距去掉了)

    我们看看输出结果是不是这样的:

    1.png

    通过上面示例,我们来了解两个属性:offsetLeft 和 offsetTop。

    offsetLeftoffsetTop属性可以分别获取元素相对定位父元素或 body 元素的水平和垂直偏移位置。

    【推荐学习:javascript高级教程

    以上就是使用js要如何计算元素的位置的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:你知道JavaScript中的可迭代对象与迭代器吗 下一篇:Node.js项目中如何安装和使用ESLint
    php培训_php实战培训【立即报名】-php中文网第20期

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• JavaScript怎么给CSS加样式• javascript怎么将值转换为int类型• JavaScript如何处理并行请求?四种方式浅析• JavaScript怎么设置页面标题• 通过JavaScript函数生成字符串的所有排列组合
    1/1

    PHP中文网