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-data的三种用法
Apr 18 jQuery
jQuery zTree树插件动态加载实例代码
May 11 jQuery
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
jQuery插件DataTables分页开发心得体会
Aug 22 jQuery
jQuery实现的弹幕效果完整实例
Sep 06 jQuery
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
jQuery获取随机颜色的实例代码
May 21 jQuery
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
jQuery实现表格隔行换色
Sep 01 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 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
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
Python中的迭代器漫谈
2015/02/03 Python
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
pyqt5实现登录界面的模板
2020/05/30 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
Python3开发环境搭建详细教程
2020/06/18 Python
什么是python的必选参数
2020/06/21 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
高考励志标语
2014/06/05 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
公司借条范本
2015/05/25 职场文书
孝女彩金观后感
2015/06/10 职场文书
小学生安全教育心得体会
2016/01/15 职场文书