jQuery方法position()与offset()区别

参考别人写得比较明白的,红色部分为重点吧:

使用jQuery获取元素位置时,我们会使用position()或offset()方法,两个方法都返回一个包含两个属性的对象-左边距和上边距,它们两个的不同点在于位置的相对点不同。

可以看看下边的图:

从图中我们可以大体看出两者的区别。

position()获取相对于它最近的具有相对位置(position:relative)的父级元素的距离,如果找不到这样的元素,则返回相对于浏览器的距离。

offset()始终返回相对于浏览器文档的距离,它会忽略外层元素

下边看个简单的例子,这里外层的div元素(position:relative)仅一个:

<divid="outer"style="width:200px;position:relative;left:100px;"><divid="inner"style="position:absolute;left:50px;top:60px;"></div></div>
//获取相对于最近的父级(position:relative)的位置var vposition = $("#inner").position();
alert(vposition.left);//输出:50
alert(vposition.top);//输出:60var voffset = $("#inner").offset();
alert(voffset.left);//输出:$("#outer").offset().left+50
alert(voffset.top);//输出:$("#outer").offset().top+60

在不同浏览器中,offset()得到的相对于浏览器的位置不同,相信你看了上边相应的注释,已经掌握了position()同offset()方法的区别。

原文:http://www.jquery001.com/position()-offset().html

时间: 2024-09-30 10:56:51

jQuery方法position()与offset()区别的相关文章

jQuery中position()与offset()区别

使用jQuery获取元素位置时,我们会使用position()或offset()方法,两个方法都返回一个包含两个属性的对象-左边距和上边距,它们两个的不同点在于位置的相对点不同. 可以看看下边的图: 从图中我们可以大体看出两者的区别.position()获取相对于它最近的具有相对位置(position:relative)的父级元素的距离,如果找不到这样的元素,则返回相对于浏览器的距离.offset()始终返回相对于浏览器文档的距离,它会忽略外层元素. <div id="outer"

JQuery this和$(this)的区别及获取$(this)子元素对象的方法

1.JQuery this和$(this)的区别 相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢? 首先来看看JQuery中的  $()  这个符号,实际上这个符号在JQuery中相当于JQuery(),即$(this)=jquery();也就是说,这样可以返回一个jquery对象.那么,当你在网页中alert($('#id'));时,会弹出一个[object Object ],这个object对象,也就是jquery对象了. 那么,我们

html()和text()这两个jQuery方法有什么区别

html()和text()这两个jQuery方法有什么区别:标题中的两个方法是jQuery非常常用的两个方法,并且有时候作用似乎是一模一样的,其实这只是一种假象而已,下面结合实例来介绍一下他们的区别,首先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www

jQuery的parent()和parents()方法的用法和区别

parent()和parents()方法的用法和区别:这两个方法的作用有点类似,都可以取得父级元素,但是并非完全相同,下面结合实例简单介绍一下它们的区别.先从概念入手:1.parent()方法可以取得匹配元素的第一级父元素的集合,也就是说它获得并非匹配元素的所有祖先元素,而仅仅是父元素.2.parents()方法可以取得匹配元素的所有祖先元素(不包含根元素),而不仅仅是第一级父元素.下面看一段代码实例: <!DOCTYPE html> <html> <head> <

jQuery的position(),offset(),scrollTop()/scrollLeft()

---恢复内容开始--- jquery定位函数:offset,position,scrollTop/scrollLeft (1)offset:获取当前元素相对于文档的偏移.只对可见元素有效. (2) position:获取元素相对于最近的一个position为relative or absolute的元素的祖父节点的相对偏移. (3)scrollTop()/scrollLeft()是分别获取元素滚动条距顶端的距离. $(selector).offset()与$(selector).positio

jquery方法大总结②

jquery自定义属性,区分prop()和attr() jQueryObject.prop( propertyName [, value ] ):为添加,获取属性(property),并非attribute. jquery 1.6新增. jquery:prop()和attr()的主要区别: prop()函数针对的是DOM元素(JS Element对象)的属性, attr()函数针对的是DOM元素所对应的文档节点的属性. js:property和attribute的主要区别: 1.(隐式)docu

2015第10周三jquery ui position

jQuery UI API - .position() 所属类别 方法重载(Method Overrides) | 方法(Methods) | 实用工具(Utilities) 用法 描述:相对另一个元素定位一个元素. 返回:jQuery 版本新增:1.8 .position( options ) 参数 类型 描述 options Object my(默认值:"center")类型:String描述:定义被定位元素上对准目标元素的位置:"horizontal vertical&

jQuery - 01. jQuery特点、如何使用jQuery、jQuery入口函数、jQuery和DOM对象的区别、jQuery选择器、

this指的是原生js的DOM对象 .css(""):只写一个值是取值,写俩值是赋值 window.onload   ===   $(document).ready(); $(""):获取元素   标签名..类名.#id jQuery特点 链式编程 jq.shou(3000).html(内容) 相当于 jq.shou(3000) jq.gtml(内容) 隐式迭代 隐式实用for循环.迭代 如何使用jQuery 引包 一定要在使用之前 <script src =

Jquery中$.post()与$.get()区别

1:GET访问 浏览器 认为 是等幂的 就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配] 所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果 POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的) 防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的] 设计WEB页面的时候 也应该遵守这个原则 2:谈Ajax的Get和Post的区别