JQuery Offset实验与应用(转载)
2012-12-11 18:44
106 查看
我们有时候需要实现这样一种功能:点击一个按钮,然后在按钮的下方显示一个div。当按钮位于角落时,div的位置设定就需要计算,使div完全显示。
我打算使用offset()方法实现此功能,但要先弄清楚他的功能。实验:
offset()的top是指元素与document的上边的距离,而不是浏览器当前窗体的上边缘,如图1。
图1:document高度超过window,浏览器出现滚动条,滚动滚动条,提交按钮的offset不变。
![](http://pic002.cnblogs.com/images/2012/87310/2012110817253411.jpg)
图2:document中的div有滚动条,提交按钮的offset随div滚动条变化而变化,与document无关
![](http://pic002.cnblogs.com/images/2012/87310/2012110817102959.jpg)
offset().left 同理。
通过上面的实验我们可以得出以下结论:offset() 获取元素(html 元素)距离document上边缘、左边缘的像素,我们只要清楚浏览器中document是那部分就可以正确使用offset()。关于document可以阅读 JQuery window、document、 body
应用:
1.那么我们怎么保证元素完整的显示在浏览器视窗里呢?我们可以结合offset 和 scrollTop来实现。
scrollTop获取的是什么值?根据我的实验,只有元素具有滚动条,并且滚动了一定距离,才有scrollTop值,没有滚动条的元素
scrollTop=0,比如一个button的scrollTop恒等于0。以前我有种错误的认知: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 });
原文来源:JQuery Offset实验与应用
相关文章推荐
- (转载)开源自己一款日历应用源码给大家
- 【转载】Linux下的iwpriv(iwlist、iwconfig)的简单应用
- 【转载】4412开发板嵌入式QtE应用开发环境搭建
- 转载一篇关于ALE的应用极好的文章
- 转载:改进的双向启发式搜索算法及其在车载导航仪中的应用
- 【转载】3层架构应用AspNetPager分页 GridView分页
- T-SQL中APPLY应用事例解析(转载)
- 两个DIV之间的间距,clear属性灵活应用(转载,学习一下)
- 转载【小程序】: 微信小程序开发---应用与页面的生命周期
- 转载.Net MVC中Html.RenderPartial和Html.RenderAction 的应用与区别
- 【转载】Android实现点击两次返回键退出应用
- (转载)MySQL笔记之触发器的应用
- [转载] Google将限制Python语言的应用
- 【转载】基于ASP.NET MVC 3的企业应用项目总结
- iOS开发系列--让你的应用“动”起来【转载】
- WebSphere 应用服务器 6.1 Web Services 功能部件包入门 (转载)
- [转载]C# log4net应用
- 解析XMPP协议分析与应用(转载)
- Cadence 应用注意事项--转载
- [转载]Android平台第三方应用分享到微信开发