js进阶 11-8 jquery如何获取元素相对于父元素的位置

使用jQuery的position方法获取元素相对于父元素的位置,前提条件是父元素相对定位,子元素绝对定位。position()返回相对于定位祖辈元素的坐标,而offset()返回相对于文档的坐标。position()只读,不能设置值,而offset()可设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js进阶 11-8  jquery如何获取元素相对于父元素的位置

一、总结

一句话总结:用jquery的position方法,但是使用这个方法的前提是父元素相对定位,子元素绝对定位,否则和offset()一样。

 

1、jquery中jquery集合中的匿名函数的两个参数是什么?

$(selector).offset(function(index,oldoffset)),很多jquery集合中的匿名函数都是index和oldvalue两个参数

 

2、jquery中position()和offset()的区别是什么?

如果当前元素的祖辈元素全部都是默认定位(static),那么该函数返回的偏移位置与offset()函数相同。

与offset()不同的是:position()返回的是相对于被定位的祖辈元素的坐标,offset()返回的是相对于当前文档的坐标。

 

3、position()可以像jquery中的其它位置函数(offset(),scrollTop(),scrollLeft())一样不仅可以取值,也可以设置值么?

不可以

position()函数无法用于设置操作。只可以返回值。

 

4、如何设置子元素相对于父元素偏移?

在CSS定位布局中,如果我们对父元素设置position:relative,我们就可以使用position:absolute来设置子元素相对于父元素的定位距离

 

5、jquery中的window对象怎么表示?

$(window)

114             $(window).scrollTop(500)

 

 

二、jquery如何获取元素相对于父元素的位置

1、相关知识

  1. offset() 方法返回或设置匹配元素相对于文档的偏移(位置)。
    1. 该方法返回的对象包含两个整型属性:top 和 left,以像素计。此方法只对可见元素有效。
    2. 设置偏移坐标:$(selector).offset(value)
    3. 使用函数来设置所有匹配元素的偏移坐标:$(selector).offset(function(index,oldoffset))
      • index - 可选。接受选择器的 index 位置
      • oldvalue - 可选。接受选择器的当前坐标
  2. position() 方法返回匹配元素相对于父元素的位置(偏移)。

    在CSS定位布局中,如果我们对父元素设置position:relative,我们就可以使用position:absolute来设置子元素相对于父元素的定位距离

    • position()函数用于返回当前匹配元素相对于其被定位的祖辈元素的偏移,也就是相对于被定位的祖辈元素的坐标。该函数只对可见元素有效。
    • 该函数返回一个坐标对象,该对象有一个left属性和top属性。position()中的坐标参考系是以被定位的祖辈元素的左上角为原点(0,0),向右为正,向下为正。
    • 如果当前元素的祖辈元素全部都是默认定位(static),那么该函数返回的偏移位置与offset()函数相同。
    • 如果当前jQuery对象匹配多个元素,返回坐标时,position()函数只以其中第一个匹配的元素为准。如果没有匹配的元素,则返回undefined。
    • 与offset()不同的是:position()返回的是相对于被定位的祖辈元素的坐标,offset()返回的是相对于当前文档的坐标。
    • position()函数无法用于设置操作。
  3. scrollTop():获取或设置元素相对于垂直滚动条顶部的距离,
  4. scrollLeft():来获取或设置元素相对于水平滚动条左部的距离。

 

 

2、代码

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <style>
  4 </style>
  5 <head>
  6     <meta charset="UTF-8">
  7     <title>演示文档</title>
  8     <script type="text/javascript" src="jquery-3.1.1.min.js"></script>
  9     <style>
 10         #main{
    
 11             margin:50px;
 12             padding: 50px;
 13             background: #ccc;
 14             width: 100px;height: 100px;
 15             position: relative;
 16         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值