offset和position区别.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
offset和position区别

窗体顶端 标题: ??阅读权限: 关键词: ???从已有的关键词中选择 文章正文: 在jQuery中有两个获取元素位置的方法offset 和position 。position 方法是在1.2.6版本之后加入的,为什么要引 入这个方法呢?这两个方法之间有什么异同?使用的时候应该注意哪些问题?什么时候使用offset ,什么时候又使用position 呢?? 先看看API对这这两个方法的定义: offset : 获取匹配元素在当前视口的相对偏移。 返回的对象包含两个整形属性:top 和 left。此方法只对可见元素有效。 position : 获取匹配元素相对父元素的偏移。 返回的对象包含两个整形属性:top 和 left。为精确计算结果,请在补白、边框和填充属性上使用像素单位。此方法只对可见元素有效。 真的就这么简单吗?实践出真知。 先来看看在jQuery框架源码里面,是怎么获得position 的:? //Get *real* offsetParent var offsetParent this.offsetParent , //Get correct offsets offset this.offset , parentOffset /^body|html$/i.test offsetParent[0].tagName top: 0, left: 0 : offsetParent.offset ; //Subtract element margins //note: when an element has margin: auto the offsetLeft and marginLeft //are the same in Safari causing offset.left to incorrectly be 0 offset.top??- num this, marginTop?? ; offset.left - num this, marginLeft ; //Add offsetParent borders parentOffset.top??+ num offsetParent, borderTopWidth?? ; parentOffset.left + num offsetParent, borderLeftWidth ; //Subtract the two offsets results top:??offset.top??- parentOffset.top, left: offset.left - parentOffset.left ; 注意最后那段 代码: results top:??offset.top??- parentOffset.top, left: offset.left - parentOffset.left ;代码的意思就是获取本身元素距离它的父元素的距离。 用图如下所示: 也就是元素B距离元素A的距离。 在没有position 方法之前,计算B到A的距离 只有通过 先计算B距浏览器左边距 减去 A的。 有了position 方法之后,就可以快速计算出来。不过在使用position 之前,你需要了解一 下它们的定位方式。 可以看一下测试例子1:?点击这里浏览例子l 通过例子1页面测试的结果可以得出这个结论:? 1,使用position 方法时事实上是把该元素当绝对定位来处理,获取的是该元素相当于最近的一个拥有绝对或者相对定位的父元素的偏移位置。 2,使用position 方法时如果其所有的父元素都为默认定位(static)方式,则其处理方式和offset 一样,是当前窗口的相对偏移。 3,使用offset 方法不管该元素如何定位,也不管其父元素如何定位,都是获取的该元素相对于当前视口的偏移。 知道了这些特点后,相信你对它们已经熟悉了。进一步那么我们应该如何来合理的使用position 和offset 呢?? 就我个人的经验,通常获取一个元素A的位置是为了让另外的一个元素B正好出现在A元素的附近。通常有2种情况: 1,要显示的元素B存放在DOM的最顶端或者最底端(即其父元素就是body)。这个时候用offset 是最好的。 示例验证: 用offset 正常显示的例子 :?点击查看例子2 用position无法正常显示的例子 :?点击查看例子3 在以上两个例子中,元素B都存放在Dom 结构的最下面,由于其父元素就是BODY,所以,不管元素A如何定位,只要找的A相当与整个窗口的偏移位置,就可以解决问题。 2,若要显示的元素B存放在元素A的同一父元素下(即B为A的兄弟节点),这个时候使用posit

文档评论(0)

sb9185sb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档