JQuery Offset实验与应用
2014-11-08 12:26
106 查看
来源:/article/5524740.html
JQuery Offset实验与应用
我们有时候需要实现这样一种功能:点击一个按钮,然后在按钮的下方显示一个div。当按钮位于角落时,div的位置设定就需要计算,使div完全显示。
我打算使用offset()方法实现此功能,但要先弄清楚他的功能。实验:
offset()的top是指元素与document的上边的距离,而不是浏览器当前窗体的上边缘,如图1。
图1:document高度超过window,window出现滚动条,拖动滚动条,提交按钮的offset().top不变,因为按钮与document上边缘距离未变。
图2:document中的div有滚动条,提交按钮的offset().top随div滚动条变化而变化,因为按钮与document上边缘距离已变。
offset().left 同理。
通过上面的实验我们可以得出以下结论:offset() 获取元素(html 元素)距离document上边缘、左边缘的像素,我们只要清楚浏览器中document是那部分就可以正确使用offset()。关于document可以阅读 JQuery
window、document、 body
应用:
1.那么我们怎么保证元素完整的显示在浏览器视窗里呢?我们可以结合offset 和 scrollTop来实现。
scrollTop获取的是什么值?根据我的实验,只有元素具有滚动条,并且滚动了一定距离,才有scrollTop值,没有滚动条的元素scrollTop=0。
上面提交button无滚动条,它的scrollTop恒等于0。
以前我有种错误的认知:document里面的元素与document具有相同的滚动值,这是错误的,子元素与容器的滚动值无关。
按图1(document有滚动条),需计算控件的offsetTop、height,document的scrollTop;
按图2(document无滚动条),计算控件的offsetTop、height
2.浮动div在滚动条滚动时保持在原位
按图1,
var firstTop = $("浮动DIV").offset().top; var top = firstTop + $(document).scrollTop(); $(浮动DIV).offset({ top: top });
按图2,
var top = $(浮动DIV).offset().top; $("浮动DIV").offset({ top: top });
源代码:OffsetTraining.rar
相关文章推荐
- JQuery Offset实验与应用(转载)
- VC调试器高级应用----高级断点篇
- DBGRIDEH 组件在Borland开发工具中应用全攻略
- 转(时间对象的格式化&javascript应用:实现复选框全选/全不选切换)
- 27.3 数据签名处理——基于CAPICOM的应用
- SQL日期格式化应用大全
- jms和ActiveMQ的应用例子
- 无线互联缺的是应用 我更看好Android
- JobClient应用概述
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用5
- JQuery应用
- ThreadPoolExecutor的例子与应用方式
- AppWidgetProvider 应用
- 网络基础教学(一)——以搜索为代表的网络应用
- 数组的应用以及建立临时容器存储程序运行产生的数据-作者:逝秋
- 进程操作函数:fork.execl的应用—对文件进行的修改进行自动备份
- MLP、RBF、SVM网络比较及其应用前景
- uva 1428 ---RMQ应用
- 在软件开发中应用80:20原则
- SMP3.0学习笔记之六 使用Kapsel搭建混合应用准备篇