zoukankan      html  css  js  c++  java
  • 关于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的对象。

  • 相关阅读:
    接口的上溯造型——《Thinking in Java》随笔015
    数据库
    小结
    异常及String
    多态&接口
    继承&封装
    Java 类 对象 包
    Java 方法的应用
    Java数组的运用
    Java代码运用及算法思路养成——用*号输出形状
  • 原文地址:https://www.cnblogs.com/jjucap/p/5332350.html
Copyright © 2011-2022 走看看