jQuery Position方法使用和兼容性


Posted in jQuery onAugust 23, 2017

1、position方法

jquery api地址:http://jquery.cuishifeng.cn/position.html

position方法获取匹配元素相对父元素的偏移。

2、说明

2.1 与offset()区别

.offset()是获得该元素相对于documet的当前坐标

.position()方法可以取得元素相对于父元素的偏移位置,父元素为该元素最近的而且被定位过的祖先元素。

2.2 值计算

.元素本身所占用的边框,边距和填充的大小不计。

.父元素的边框和边距不计,父元素的填充计算在内。

3、示例代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>jQuery position()示例</title>
    <style>
      html {
        line-height: 1.15;
      }
      /*父元素--相对定位*/
      .parent {
        position: relative;
        width: 200px;
        height: 400px;
        /*父元素的margin不计算在内*/
        margin-top: 10px;
        /*父元素的border不计算在内*/
        border: 1px solid green;
        /*父元素的padding计算在内*/
        padding-top: 10px;
      }
      .child-1 {
        width: 100px;
        height: 100px;
        margin: 0 auto;
        border: 1px solid #2E8DED;
      }
      .child-2 {
        width: 100px;
        height: 100px;
        /*子元素的margin不计算在内*/
        margin: 10px auto 0;
        /*子元素的border不计算在内*/
        border: 1px solid #2E8DED;
        /*子元素的padding不计算在内*/
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <div class="parent">
      <p class="child-1">
        first child
      </p>
      <p class="child-2" id="no-2">
        second child
      </p>
    </div>
    <script src=".output/js/jquery-1.12.4.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
      $(document).ready(function() {
        //获取child-2子元素距离父元素的距离
        console.log($('#no-2').position().top);
      });
    </script>
  </body>
</html>

4、注意

对于文字的line-height等属性,浏览器(chrome、IE、Firefox)默认大小不一致,因此不同的浏览器position()在计算尺寸时会存在不一致,因此必须保证所有浏览器一致的line-height等属性。

示例代码为没有设置line-height的例子,position()在不同的浏览器上计算出的值不一样。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>jQuery position()示例</title>
    <style>
      html {
        /*必须给予一致的设置,否则position()计算值不同*/
        /*line-height: 1.15;*/
      }
      /*父元素--相对定位*/
      .parent {
        position: relative;
        width: 200px;
        height: 400px;
        /*父元素的margin不计算在内*/
        margin-top: 10px;
        /*父元素的border不计算在内*/
        border: 1px solid green;
        /*父元素的padding计算在内*/
        padding-top: 10px;
      }
      .child-1 {
        width: 100px;
        height: 100px;
        margin: 0 auto;
        border: 1px solid #2E8DED;
      }
      .child-2 {
        width: 100px;
        height: 100px;
        /*子元素的margin不计算在内*/
        margin: 10px auto 0;
        /*子元素的border不计算在内*/
        border: 1px solid #2E8DED;
        /*子元素的padding不计算在内*/
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <div class="parent">
      文字文字
      <p class="child-1">
        first child
      </p>
      <p class="child-2" id="no-2">
        second child
      </p>
    </div>
    <script src=".output/js/jquery-1.12.4.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
      $(document).ready(function() {
        //获取child-2子元素距离父元素的距离
        console.log($('#no-2').position().top);
      });
    </script>
  </body>
</html>

总结

以上所述是小编给大家介绍的jQuery Position方法使用和兼容性,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
利用jQuery解析获取JSON数据
Apr 08 jQuery
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
jQuery复合事件用法示例
Jun 10 jQuery
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
jQuery擦除插件eraser使用方法详解
Jan 11 jQuery
jQuery 判断元素是否存在然后按需加载内容的实现代码
Jan 16 jQuery
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
jQuery实现视频展示效果
May 30 jQuery
jQuery实现简单QQ聊天框
Aug 27 jQuery
jQuery实现容器间的元素拖拽功能
Dec 01 jQuery
基于jQuery实现的单行公告活动轮播效果
Aug 23 #jQuery
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 #jQuery
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
Aug 23 #jQuery
简单实现jQuery上传图片显示预览功能
Jun 29 #jQuery
关于JS与jQuery中的文档加载问题
Aug 22 #jQuery
jQuery插件DataTables分页开发心得体会
Aug 22 #jQuery
jQuery实现广告条滚动效果
Aug 22 #jQuery
You might like
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
php接口隔离原则实例分析
2019/11/11 PHP
JS 遮照层实现代码
2010/03/31 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
python实现二维码扫码自动登录淘宝
2016/12/27 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Django框架验证码用法实例分析
2019/05/10 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
python中下标和切片的使用方法解析
2019/08/27 Python
python如何实现图片压缩
2020/09/11 Python
大型活动策划方案
2014/01/12 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
运动会宣传口号
2014/06/09 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
Python连续赋值需要注意的一些问题
2021/06/03 Python
python数据处理之Pandas类型转换
2022/04/28 Python