Rumah > hujung hadapan web > tutorial js > jQuery之Position方法使用方法和兼容性详解

jQuery之Position方法使用方法和兼容性详解

小云云
Lepaskan: 2017-12-30 14:10:13
asal
1515 orang telah melayarinya

本文主要和大家分享jQuery Position方法使用和兼容性的相关知识,position方法获取匹配元素相对父元素的偏移。感兴趣的朋友一起看看吧,希望能帮助到大家。

1、position方法

jquery api地址:http://jquery.cuishifeng.cn/position.html

position方法获取匹配元素相对父元素的偏移。

2、说明

2.1 与offset()区别

.offset()是获得该元素相对于documet的当前坐标

.position()方法可以取得元素相对于父元素的偏移位置,父元素为该元素最近的而且被定位过的祖先元素。

2.2 值计算

.元素本身所占用的边框,边距和填充的大小不计。

.父元素的边框和边距不计,父元素的填充计算在内。

3、示例代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

<!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>

    <p class="parent">

      <p class="child-1">

        first child

      </p>

      <p class="child-2" id="no-2">

        second child

      </p>

    </p>

    <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>

Salin selepas log masuk

4、注意

对于文字的line-height等属性,浏览器(chrome、IE、Firefox)默认大小不一致,因此不同的浏览器position()在计算尺寸时会存在不一致,因此必须保证所有浏览器一致的line-height等属性。

示例代码为没有设置line-height的例子,position()在不同的浏览器上计算出的值不一样。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

<!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>

    <p class="parent">

      文字文字

      <p class="child-1">

        first child

      </p>

      <p class="child-2" id="no-2">

        second child

      </p>

    </p>

    <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>

Salin selepas log masuk

相关推荐:

CSS定位position及应用场景实例分析

css的position怎么使用

CSS position属性实例详解

Atas ialah kandungan terperinci jQuery之Position方法使用方法和兼容性详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan