javascript核心技术(三十三)Jquery中的取元素位置操作 offset position

[复制链接]
查看: 1763|回复: 31
发表于 2023-1-26 21:50:57 | 显示全部楼层 | 阅读模式
本节我们来看一下offset和position,这两个方法稍微有一点绕,请大家认真理解。

语法如下:
  1. $('#btn').offset();//取元素的绝对位置,相对于浏览器的左上角。
  2. $('window').position();//取元素的相对位置,相对于该元素的带有position定位的上级元素。
复制代码
一、position
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="./jquery.js"></script>
    <title>Jquery中元素的尺寸与位置操作</title>
</head>
<style>
    * {
        margin: 0px;
        padding: 0px;
    }

    .father {
        background-color: rgb(12, 148, 182);
        width: 200px;
        height: 200px;
        padding: 50px;
        margin-bottom: 50px;
        margin-left: 100px;
    }

    .children {
        height: 150px;
        width: 150px;
        background-color: #ffffff;
        line-height: 150px;
        text-align: center;
    }
</style>

<body>
    <div class="father" style="position:relative">
        <div class="children"></div>
    </div>

    <div class="father">
        <div class="children"></div>
    </div>
</body>
<script>
    $(document).ready(function () {
        $(".children").each(function () {
            var html;
            html = "left:" + $(this).position().left;
            html += "top:" + $(this).position().top;
            $(this).html(html);
            console.log($(this).offset());
        })

    })

</script>

</html>

javascript核心技术(三十三)Jquery中的取元素位置操作 offset position

解释一下:
以上我们创建了两个div盒子,它们的高度为200px,宽度为200px,内边距为50px,左外边距为100px,下外边距为50px。
所以:
由于内边距为50,大盒子的宽高最终都是300px。
第一个大盒子里面的小盒子距离大盒子的左边为50px,距离浏览器的左边为150px,距离大盒子的顶边为50px,距离浏览器的顶边为50px。
第二个大盒子里面的小盒子距离大盒子的左边为50px,距离浏览器的左边为150px,距离大盒子的顶边为50px,距离浏览器的顶边为400px。
第一个大盒子使用了position:relative定位。

以上实验得出的结论是:
第一个大盒子里面的小盒子通过position方法取得左边为50,即:相对大盒子左边的距离,因为大盒子使用了position:relative定位。
第二个大盒子里面的小盒子通过position方法取得左边为150,即:相对于浏览器左边的距离,因为第二个大盒子没有使用position:relative定位。
同理,第一个大盒子中的小盒子顶边也相对于父盒子,为50。第二个大盒子中的小盒子的顶边相对于浏览器,顶边为400px。

以上描述虽有一些绕嘴,但总算是表达清楚了,在实际编程过程中这个问题有很多人搞不清楚,所以说的啰嗦了一点。

二、offset
javascript核心技术(三十三)Jquery中的取元素位置操作 offset position

在代码中我们分别通过offset取出了它们的位置信息,输出结果如上图所示。
offse取出的位置都是相对于浏览器的,所以:
第一个小盒子的位置是:顶边为50,左边为150.
第二个小盒子的位置是:顶边为400,左边为150.

ok,以上就是Jquery中 offset和position取元素位置的讲解,请大家把代码复制下来认真理解一下。

易博软件介绍

0

主题

12

帖子

6

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
6
发表于 2023-2-20 10:40:15 | 显示全部楼层
真的不错,佩服佩服!
发表于 2023-3-3 20:08:51 | 显示全部楼层
我不会编程,但我正在学习,我很喜欢.

0

主题

6

帖子

3

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
3
发表于 2023-3-14 10:48:31 | 显示全部楼层
感想很多,很受用,谢谢楼主!

0

主题

8

帖子

5

积分

营销入门

Rank: 2

积分
5
发表于 2023-3-24 01:22:51 | 显示全部楼层
不错

0

主题

14

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-3-29 11:16:27 | 显示全部楼层
好意!  肯请楼主带主角去测测智商,  情商为0就不用了!

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-4-3 18:29:37 | 显示全部楼层
谢!
发表于 2023-4-9 04:40:25 | 显示全部楼层
谢谢了,我是大一的,刚刚编程入门,这篇文章对我以后的学习有很大的帮助~

1

主题

83

帖子

44

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
44

终身会员

发表于 2023-4-13 17:30:57 | 显示全部楼层
看你的文章,真的挺受益啊~~~  我以后一定要努力!
发表于 2023-4-18 14:40:03 | 显示全部楼层
受益匪浅呀,我一定好好学习,好好把握剩下的大学时光
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表