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的对象。

  • 相关阅读:
    一次失败的架构评审会议
    在搜索引擎面前经验是如此苍白
    中层难当
    js调试的小工具
    用js小类库获取浏览器的高度和宽度信息
    js过滤HTML标签以及&nbsp;
    语句
    .NET中回调事件的简单分析
    javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
    JavaScript中的16进制字符(改进)
  • 原文地址:https://www.cnblogs.com/jjucap/p/5332350.html
Copyright © 2011-2022 走看看