通过Jquery判断页面元素是否在浏览器的可视区域内
来源:互联网 发布:知乎粉红 编辑:程序博客网 时间:2024/05/03 03:04
前端开发中,有时需要判断某个元素是否在浏览器的可视区域内,或者是否已经滚动出了可视区域.首先想到的便是javascript操作,原生方法自然可以,不过Jquery已经封装了一些属性,使用起来更方便些,我们这里就讨论这种Jquery的方式.(伸手党可直接看文章屁股 :cool:)
假设此元素为 #item,先说几个关键的属性:
#item 的绝对偏移量,指#item的实际尺寸(即不包括外边框margin)的上边界到页面顶端的距离.这个值不随窗口滚动而改变
#item 的实际尺寸,即 height+padding+border
#item的实际尺寸及外边距,即 height+padding+border+margin
窗口滚动的顶部偏移量,即此时页面的上边界到可视区域的上边界的偏移量,简单的可以理解成整个页面滚动了多少距离
浏览器窗口可视区域的高度
用脚后跟想想就能想到,在窗口上下滚动的情况下,一个页面元素的状态有3种,1.向上滚动超出可视区域,2.向下滚动超出可视区域,3.在可视区域内.很明显,我们需要的就是1和2两种情况.
情况1:
由于元素随页面向上滚动,所以自然能想到,在页面顶部偏移量不断增加的过程中,边界是从上至下经过一段距离,而这个距离的区域恰好就是元素本身的偏移量加上元素本身的高度,所以当
这个表达式结果为true时,表示元素已经向上滚动,并超出了可视区域.
情况2:
与情况1相反,向下滚动的过程,页面顶部的偏移量是在不断减少中,所以当它小于元素偏移量与可视区域高度的差值的时候,元素则向下并超出了可视区域,即
那么结论就是将这两种情况作或运算即可达到目的.以下表达式结果如果为true,则 #item 不在可视区域内.反之则在可视区域内.
或许还有更优的算法,我暂时还没想到,凑合用吧
感谢原文作者分享:http://www.txd.me/1120.html
- Jquery判断页面元素是否在浏览器的可视区域内
- 通过Jquery判断页面元素是否在浏览器的可视区域内
- 通过Jquery判断页面元素是否在浏览器的可视区域内
- 通过Jquery判断页面元素是否在浏览器的可视区域内
- 通过Jquery判断页面元素是否在浏览器的可视区域内
- js判断元素是否在可视区域内
- 判断元素是否在可视区域内
- 如何判断一个div是否在页面可视区域内
- jQuery poshytip实现页面不可视区域内的字段信息通过提示框展示
- 元素在浏览器可视区域判断
- jq判断一个元素是否在可视范围内
- 在jQuery,如何判断页面元素是否存在?
- jQuery判断元素在页面内是否可见
- 判断用户是否在看当前网页以及判断某个元素是否在网页可视区域
- jQuery 判断页面元素是否存在的代码
- jQuery 判断页面元素是否存在的代码
- 用jQuery判断页面元素是否存在的方法
- jQuery 判断页面元素是否存在的代码
- HDU-1198 Farm Irrigation
- java获取本机mac地址
- OpenCV基础篇之图片叠加
- 精神病人人员定位系统模式
- 博客第一天
- 通过Jquery判断页面元素是否在浏览器的可视区域内
- 设计模式–策略模式
- Windows sockets网络开发-select模型
- 循环的角度求均值
- UDP链接建立、关闭
- function Object的创建过程
- iOS坐标系
- 王岐山政协会回应有无更大老虎
- c基础,看似简单实则值得思考的问题