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 06 jQuery
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
基于jquery.page.js实现分页效果
Jan 01 jQuery
jQuery实现监听下拉框选中内容发生改变操作示例
Jul 13 jQuery
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
jQuery+Datatables实现表格批量删除功能【推荐】
Oct 24 jQuery
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 jQuery
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
jQuery操作cookie的示例代码
Jun 05 jQuery
jQuery中DOM常见操作实例小结
Aug 01 jQuery
基于JQuery和DWR实现异步数据传递
Oct 16 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开发负载均衡指南
2010/07/17 PHP
php常用Stream函数集介绍
2013/06/24 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
js判断密码强度的方法
2020/03/18 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python访问MySQL封装的常用类实例
2014/11/11 Python
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
python解包用法详解
2021/02/17 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
会计岗位职责范本
2014/03/07 职场文书
个人委托函范文
2015/01/29 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
话题作文之诚信
2019/11/28 职场文书
JavaScript执行机制详细介绍
2021/12/06 Javascript
MySQL中order by的执行过程
2022/06/05 MySQL