有没有办法通过使用jQuery来确定某个元素当前是否在用户的屏幕/视口上可见? (不使用其他外部库)确定元素是否在屏幕上
-2
A
回答
0
不能直接使用默认jQuery的,但你可以实现自己的功能,你可以用它之后一个jQuery的元素:
(function ($) {
$.fn.isOnScreen = function() {
var topView = $(window).scrollTop();
var botView = topView + $(window).height();
var topElement = this.offset().top;
var botElement = topElement + this.height();
return ((botElement <= botView) && (topElement >= topView));
}
})(jQuery);
添加此代码后,你可以调用$('#yourElementId').isOnScreen()
如果整个元素在屏幕上将返回true
,如果不是,则返回false
。
您也可以玩弄它一下,所以它会返回true
如果至少元件的四分之一是在屏幕上可见,例如像这样:
(function ($) {
$.fn.isOnScreen = function() {
var topView = $(window).scrollTop();
var botView = topView + $(window).height();
var topElement = this.offset().top;
var botElement = topElement + (this.height()/4); //<---
return ((botElement <= botView) && (topElement >= topView));
}
})(jQuery);
相关问题
- 1. 确定iframe中的元素是否在屏幕上可见
- 2. 如何在屏幕上定位元素?
- 3. 确定是否一个iframe是屏幕
- 4. 如何检查元素是否在屏幕上
- 5. 检查元素是否在屏幕上与断言,NoSuchElementException发生
- 6. jQuery的:测试是否元素在屏幕上
- 7. 如何知道html元素是否在屏幕上?
- 8. 如何知道元素是否在屏幕上?
- 9. 屏幕阅读器是否可以在DIV元素中“锁定”?
- 10. 移动屏幕上的固定元素
- 11. 确定一个精灵是否在屏幕上或不在cocos2d
- 12. 确定iPhone用户是否在Safari浏览器屏幕上
- 13. 确定一个表单是否完全不在屏幕上
- 14. 确定一个视图是否在屏幕上 - Android
- 15. 不在屏幕上时丢失元素
- 16. MoveToElement元素刚刚在屏幕上时
- 17. 在屏幕上放置一个元素
- 18. 在屏幕上显示div元素
- 19. 检查元素在屏幕上
- 20. 在屏幕中心定位div元素
- 21. 确定元素是否存在
- 22. 确定元素是否在边界内?
- 23. 测试在JQuery的元素是否在屏幕
- 24. 确定屏幕上的点是否在特定的UIScrollView子视图中
- 25. 屏幕上的Android位置元素
- 26. 屏幕上的表面元素
- 27. 如何检查一个元素是否在屏幕上完全可见?
- 28. 如何识别元素是否在屏幕上使用反应原生?
- 29. 我如何验证一个元素是否在屏幕上可见?
- 30. CSS将元素保持在屏幕上的“固定”位置
这已经回答了很多很多次之前。你问它,然后在一分钟内回答。为什么? – 2014-10-27 15:36:59
@DeeMac我正在寻找这样的问题,并没有找到解决方案。我已经发布了这个问题马上回答。 (回答你自己的问题功能) – Dropout 2014-10-27 15:38:13
可能重复[检查元素是否可见后滚动](http://stackoverflow.com/questions/487073/check-if-element-is-visible-after-scrolling) – MaxiWheat 2014-10-27 16:01:23