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实现图片平滑滚动详解
Mar 22 jQuery
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
jQuery子选择器与可见性选择器实例分析
Jun 28 jQuery
jquery.pager.js分页实现详解
Jul 29 jQuery
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 jQuery
jQuery 隐藏/显示效果函数用法实例分析
May 20 jQuery
jQuery实现电梯导航模块
Dec 22 jQuery
ajax jquery实现页面某一个div的刷新效果
Mar 04 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 不同编码下的字符串长度区分
2009/09/26 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
php技巧小结【推荐】
2017/01/19 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
13个PHP函数超实用
2015/10/21 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
vue 组件简介
2020/07/31 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
python uuid模块使用实例
2015/04/08 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
EJB面试题
2015/07/28 面试题
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
个人年终总结开头
2015/03/06 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL