• 元素位置常用总结


    getBoundingClientRect()

      用法简单,返回元素对浏览器视口顶部和左边部的距离(可为负数)以及宽高,单位px,为整数 ;

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<style>
    	*{
    		padding: 0;
    		margin: 0;
    	}
    		div{
    			 100px;
    			height: 10000px;
    			background-color: pink;
    		}
    	</style>
    </head>
    <body>
    	<div id="id"></div>
    <script>
    	var div = document.getElementById('id');
    	console.log(div.getBoundingClientRect()); 
    </script>
    </body>
    </html>
    

      

      获取相对于页面的位置需加上滚动条的距离:

    var rect = el.getBoundingClientRect()
    
    {
      top: rect.top + document.body.scrollTop,
      left: rect.left + document.body.scrollLeft
    }
    

      然后你就会发现现在不就是jq的$(el).offset()吗?对的没错,就是这玩意。

      兼容性:在ie7及以下,会有多2px,蛋疼的话写个兼容好了

    function jianrongnimei(el){
    		var rect = el.getBoundingClientRect();
       		var top = document.documentElement.clientTop; //ie会返回2
        	     var left= document.documentElement.clientLeft;
    	    return{
    	        top    :   rect.top - top,
    	        bottom :   rect.bottom - top,
    	        left   :   rect.left - left,
    	        right  :   rect.right - left
    	    }
    	}
    

      同样此方法只能对可见元素(opacity也算可见)起作用(同jq),display:none,以后只能返回0了;老婆买烧烤回来了,下次更

    
    
    

      

  • 相关阅读:
    Lotus Notes/Domino发生故障时常用的数据收集步骤
    0207.Domino R8.0.x群集配置手册
    兼容IE、FF的将当前页加入收藏夹和设为首页的js代码
    常用函数
    jsonp详解
    开启curl
    Javascript在页面加载时的执行顺序
    linux系统利用u盘装xp
    Table '.\about_cj\newabout' is marked as crashed and should be repaired
    iframe跨域问题
  • 原文地址:https://www.cnblogs.com/dansingal/p/6870270.html
Copyright © 2020-2023  润新知