Jquery中offset()和position()的区别分析


Posted in Javascript onFebruary 05, 2015

本文实例分析了Jquery中offset()和position()的区别。分享给大家供大家参考。具体分析如下:

一、Jquery中offset()

获取匹配元素在当前视口的相对偏移。 总是计算相对于文档的位置,无论元素的父元素或祖先元素的position属性是什么。
返回的对象包含两个整形属性:top 和 left。此方法只对可见元素有效。
 
例如:

<!DOCTYPE html> 
<html> 
<head> 
<style> 
p { margin-left:10px; } 
</style> 
<script src="js/jquery.js"></script> 
</head> 
<body> 
 <p>Hello</p><p>2nd Paragraph</p> 
<script>
var p = $("p:last"); 
var offset = p.offset(); 
p.html( "left: " + offset.left + ", top: " + offset.top );
</script> 
</body> 
</html>

二、Jquery中position()

获取匹配元素相对父元素的偏移。 更通俗一点,含有position:relative的元素的最近的父元素或祖先元素---的位置。如果未能找到这样的父元素或祖先元素,那么会计算相对于文档(即视区左上角)的位置. 返回的对象包含两个整形属性:top 和 left。为精确计算结果,请在补白、边框和填充属性上使用像素单位。

例如:

<!DOCTYPE html> 
<html> 
<head> 
 <style> 
 div { padding: 15px;} 
 p { margin-left:10px; } 
 </style> 
 <script src="jquery脚本URL"></script> 
</head> 
<body> 
<div> 
 <p>Hello</p> 
</div> 
<p></p> 
<script> 
var p = $("p:first"); 
var position = p.position(); 
$("p:last").text( "left: " + position.left + ", top: " + position.top ); 
</script> 
</body> 
</html>

三、offset()和position()的区别
 
1、offset()方法获取匹配元素在当前窗口的相对偏移量。这里的窗口指的是当前页面的窗口,不包括浏览器的菜单栏等,当然我们也不太需要使用jquery来控制整个浏览器,我们所要控制的是页面窗口。

2、position()方法获取匹配元素相对父元素的偏移量。即获取的是该元素相对于最近的一个拥有绝对定位或者相对定位的父元素的偏移量。如果所有的父元素都是默认的static定位方式,则其处理方式和offset()一样,是当前窗口的偏移量。

3、使用position()方法时如果其所有的父元素都为默认定位(static)方式,则其处理方式和offset()一样,是当前窗口的相对偏移

4、使用offset()方法不管该元素如何定位,也不管其父元素如何定位,都是获取的该元素相对于当前视口的偏移。

5、一般情况下,如果要显示的元素B存放在元素A的同一父元素下(即B为A的兄弟节点),这个时候使用position() 是最合适的;如果显示的元素B存放在DOM的最顶端或者最底端(即其父元素就是body)。这个时候用offset()是最好的。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
基于jquery的图片的切换(以数字的形式)
Feb 14 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
Jan 26 Javascript
jQuery时间轴插件使用详解
Jul 16 Javascript
使用jquery实现仿百度自动补全特效
Jul 23 Javascript
jQuery自定义动画函数实例详解(附demo源码)
Dec 10 Javascript
jQuery的实例及必知重要的jQuery选择器详解
May 20 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
JavaScript中push(),join() 函数 实例详解
Sep 06 Javascript
JQuery实现动态操作表格
Jan 11 Javascript
JavaScript命令模式原理与用法实例详解
Mar 10 Javascript
Nuxt的动态路由和参数校验操作
Nov 09 Javascript
JS实现一个按钮的方法
Feb 05 #Javascript
JS继承用法实例分析
Feb 05 #Javascript
Javascript实现Web颜色值转换
Feb 05 #Javascript
JS表的模拟方法
Feb 05 #Javascript
JS的数组迭代方法
Feb 05 #Javascript
js实现照片墙功能实例
Feb 05 #Javascript
js实现仿百度瀑布流的方法
Feb 05 #Javascript
You might like
PHP 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
详解php实现页面静态化原理
2017/06/21 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
Angularjs的启动过程分析
2017/07/18 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
python正则表达式match和search用法实例
2015/03/26 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
多版本Python共存的配置方法
2017/05/22 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
《临死前的严监生》教学反思
2014/02/13 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
模范教师事迹材料
2014/12/16 职场文书
《假如》教学反思
2016/02/17 职场文书
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers