• 关于offset,scroll,position


    在看1.11.0的JQuery文档的时候offset的介绍是

                获取匹配元素在当前视口的相对偏移。

    一直以为是相对于视口的值。后面在用到的时候发现原来是到页面顶部的值。offset().top;offset().left;都是针对页面文档的.

    原生的是offsetLeft,他跟父元素是否是定位有关。如果父元素是声明了position,offsetLeft的值就是相对父元素的偏移量。如果父元素没有,offsetLeft则是相对视口的偏移量。

    scrollTop的介绍是:

              获取匹配元素相对滚动条顶部的偏移。

    和offset的介绍相比少了一个“在”,这就是自己第一次理解offset时的误区了。

    position的介绍是:

              获取匹配元素相对父元素的偏移。position().top;position().left

    这里有一种情况就是父元素设置padding-left值,子元素设置margin-left值,获取position().left值的时候是不包括子元素的margin-left的。

    <style type="text/css">
    #div1{
    	 200px;
    	height: 200px;
    	background: red;
    	position: relative;
    	padding-left: 30px;
    }
    #div2{
    	50px;
    	height: 50px;
    	background: yellow;
    	position: absolute;
    	margin-left: 10px;
    }
    </style>
    <body>
    <div id="div1">
    	<div id="div2"></div>
    </div>
    </body>
    <script>
    
    var leftdistan=$("#div2").position().left;
    		console.log(leftdistan);//30
    </script>
    

      

    说到position想到之前遇到对一个元素设置position:absolute的时候会从它的父级开始找,如果碰到父级或者更高的爷级元素有position属性的时候,会相对与找到的这个元素来进行top和left的定位。以前一直以为position的值必须为relative才可以让它的子元素相对于它来进行position:absolute.其实父元素的position:fixed的时候其子元素也可以相对其进行绝对定位。但是fixed可能一些老的浏览器不支持,没去研究。

    z-index是定位元素的层叠属性,较大的z-index会覆盖在较小的上,前提是此属性仅仅作用于position属性值为relative或者absolute的对象。

  • 相关阅读:
    数据中台的“自动化数据治理”时代已来
    如何利用缓存机制实现JAVA类反射性能提升30倍
    快速入门开发实现订单类图片识别结果抽象解析
    Nginx专题(1):Nginx之反向代理及配置
    Github 上热门的 Spring Boot 项目实战推荐
    设计模式之命令模式(二)
    设计模式之命令模式(一)
    设计模式之单例模式(二)
    设计模式之单例模式(一)
    好的学习带给我什么
  • 原文地址:https://www.cnblogs.com/jjucap/p/5332350.html
Copyright © 2020-2023  润新知