jQuery 获取元素位置 offset() 和 position()

2024-09-05 02:48

本文主要是介绍jQuery 获取元素位置 offset() 和 position(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇文件向大家介绍的方法是 offset() 和 position() ,这两个方法有什么关系?下面的内容做详细介绍。

offset()功能描述:在匹配的元素集合中,获取的第一个元素的当前坐标,坐标相对于文档。

position() 功能描述:获取匹配元素中第一个元素的当前坐标,相对于offset parent的坐标。( 注:offset parent指离该元素最近的而且被定位过的祖先元素 ) 。

这两个方法的功能都是获取元素的坐标。相信大家使用的一般都是 offset() 方法而几乎不知道  position() 方法,因为网上所得到的答案几乎都是千篇一律的 offset() 方法。

既然功能一样,却又存在两个方法,那么他们肯定有不同。我们经常需要计算一个元素的相对坐标。通过当前元素与参照元素计算后得知。大jQuery为了方便开发者,专门提供了 position() 方法来解决这个问题。请看下面的代码

/* CSS */
#div1{position: relative;margin: 100px auto;width: 300px;height: 300px;border: #e5e5e5 solid 1px;
}
#div2{position: absolute;width: 50px;height: 30px;background-color: #e5e5e5;left: 123px;top: 66px;margin: 22px 0 0 45px;
}
<!-- html -->
<div id="div1"><div id="div2"></div>
</div>
/* js */
console.log($("#div2").offset());
//  {top: 189, left: 273}
console.log($("#div2").position());
//  {top: 66, left: 123}

通过上面的代码得知,position() 非常方便的帮助我们计算了 #div2 元素 相对于 #div1 的坐标。这是一个好方法,但是它也有要求。那就是它所参照的父元素一定要是 position: relative 的元素。

大家可以从看完这篇文章开始,合理的使用 position() 方法吧,很方便有木有。

如果你阅读这篇文章后,有一丢丢的小疑惑,建议你去巩固CSS盒子模型知识。写好一手布局,才能写好一手脚本。

作者:黄河爱浪 QQ:1846492969,邮箱:helang.love@qq.com

微信公众号:web-7258,本文原创,著作权归作者所有,转载请注明原链接及出处。

更多精彩文章,请扫下方二维码关注我的公众号

这篇关于jQuery 获取元素位置 offset() 和 position()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137759

相关文章

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter