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手风琴的简单制作
May 12 jQuery
jquery仿京东商品放大浏览页面
Jun 06 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 jQuery
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
jQuery+CSS实现的table表格行列转置功能示例
Jan 08 jQuery
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
jQuery实现简单轮播图效果
Dec 27 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
第十三节 对象串行化 [13]
2006/10/09 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
django解决订单并发问题【推荐】
2019/07/31 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
Python xlwt模块使用代码实例
2020/06/10 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
父母对孩子说的话
2014/04/12 职场文书
毕业证委托书范文
2014/09/26 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
观后感开头
2015/06/19 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android