确定元素是否在屏幕上
答
不能直接使用默认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);
这已经回答了很多很多次之前。你问它,然后在一分钟内回答。为什么? – 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