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 相关文章推荐
utf8的编码算法 转载
Dec 27 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
May 25 Javascript
12个超实用的JQuery代码片段
Nov 02 Javascript
Node.js 日志处理模块log4js
Aug 28 Javascript
Bootstrop实现多级下拉菜单功能
Nov 24 Javascript
JS匿名函数实例分析
Nov 26 Javascript
js轮播图的插件化封装详解
Jul 17 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
微信小程序实现animation动画
Jan 26 Javascript
微信开发之微信jssdk录音功能开发示例
Oct 22 Javascript
vue2.0 实现富文本编辑器功能
May 26 Javascript
vue路由的配置和页面切换详解
Sep 09 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
下载文件的点击数回填
2006/10/09 PHP
简单采集了yahoo的一些数据
2007/02/14 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
django使用channels实现通信的示例
2020/10/19 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
Python Http请求json解析库用法解析
2020/11/28 Python
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
会计与审计专业大专生求职信
2013/10/03 职场文书
关于赌博的检讨书
2014/01/24 职场文书
士力架广告词
2014/03/20 职场文书
学历公证书范本
2014/04/09 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书