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 相关文章推荐
javascript面向对象编程代码
Dec 19 Javascript
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
JS过滤url参数特殊字符的实现方法
Dec 24 Javascript
from表单多个按钮提交用onclick跳转不同action
Apr 24 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
May 16 Javascript
JS实现仿京东淘宝竖排二级导航
Dec 08 Javascript
详细谈谈javascript的对象
Jul 31 Javascript
Angular2从搭建环境到开发步骤详解
Oct 17 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
Nov 30 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
Feb 18 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
JS/CSS实现字符串单词首字母大写功能
Sep 03 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
使用 MySQL Date/Time 类型
2008/03/26 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
javascript编写简易计算器
2017/05/06 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
python实现哈希表
2014/02/07 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
酒店前台接待岗位职责
2013/12/03 职场文书
求职简历的自我评价
2014/01/31 职场文书
总经理助理职责
2014/02/04 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
二婚主持词
2015/06/30 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
python Tkinter的简单入门教程
2021/04/11 Python