jquery offset函数应用实例


Posted in Javascript onNovember 14, 2012

我们有时候需要实现这样一种功能:点击一个按钮,然后在按钮的下方显示一个div。当按钮位于角落时,div的位置设定就需要调整,不然,div将显示不完全。

我打算使用offset()方法实现此功能,但要先弄清楚他的功能。

offset()的top是指元素与document的上边的距离,而不是浏览器当前窗体的上边缘,如图1。

 图1:document高度超过window,浏览器出现滚动条,滚动滚动条,提交按钮的offset不变。

jquery offset函数应用实例

图2:document中的div有滚动条,提交按钮的offset随div的滚动变化而变化,与document无关

jquery offset函数应用实例

offset().left 同理。

通过上面的实验我们可以得出以下结论:offset() 获取指元素(html 元素)距离document上边缘、左边缘的像素,我们只要清楚浏览器中document是那部分就可以正确使用offset()。关于document可以阅读 JQuery   window、document、 body

那么我们怎么保证元素完整的显示在浏览器视窗里呢?我们可以结合offset 和 scrollTop来实现。

scrollTop获取的是什么值?根据我的实验,只有元素具有滚动条,并且滚动了一定距离,才有scrollTop值,没有滚动条的元素scrollTop=0,比如一个button的scrollTop恒等于0。以前我有种错误的认知:document与他里面的子元素具有相同的滚动值,这是错误的,子元素与容器的滚动值无关。

按图1(document有滚动条),需计算控件的offsetTop、高度,document的scrollTop;

按图2(document无滚动条),计算控件的offsetTop、高度

源代码:jquery_offset.rar

Javascript 相关文章推荐
js循环改变div颜色具体方法
Jun 25 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
Nov 14 Javascript
JS获取随机数函数可自定义最小值最大值
May 08 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
Mar 06 Javascript
JS分页的实现(同步与异步)
Sep 16 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
Sep 19 Javascript
微信小程序登录session的使用
Mar 17 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
微信小程序实现的五星评价功能示例
Apr 25 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
js实现随机点名器精简版
Jun 29 Javascript
如何让div span等元素能响应键盘事件操作指南
Nov 13 #Javascript
给artDialog 5.02 增加ajax get功能详细介绍
Nov 13 #Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
Nov 13 #Javascript
Google的跟踪代码 动态加载js代码方法应用
Nov 12 #Javascript
Javascript开发之三数组对象实例介绍
Nov 12 #Javascript
在浏览器窗口上添加遮罩层的方法
Nov 12 #Javascript
php对mongodb的扩展(小试牛刀)
Nov 11 #Javascript
You might like
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
老生常谈js数据类型
2017/08/03 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
Python递归实现打印多重列表代码
2020/02/27 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
东芝官网商城:还原日式美学,打造美好生活
2018/12/27 全球购物
酒店营销策划方案
2014/02/07 职场文书
吸烟检讨书2000字
2014/02/13 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
售后客服工作职责
2014/06/16 职场文书
稽核岗位职责
2015/02/10 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
win11开机发生死循环重启怎么办?win11开机发生死循环重启解决方法
2022/08/05 数码科技
JavaScript实现音乐播放器
2022/08/14 Javascript