在我的网站中,有一个向右滚动的浮动云(元素),我想知道它何时不再出现在屏幕上。
我该怎么做?
setInterval(function(){
if(!jQuery('.sa_cloud_l').is(':visible')){
alert('not visible anymore');
}else{
c1.css('left', '+=21');
}
},100);
在我的网站中,有一个向右滚动的浮动云(元素),我想知道它何时不再出现在屏幕上。
我该怎么做?
setInterval(function(){
if(!jQuery('.sa_cloud_l').is(':visible')){
alert('not visible anymore');
}else{
c1.css('left', '+=21');
}
},100);
:visible
仅选择其 CSS显示属性不是的元素none
。你可以使用offset()
方法。
var width = $(window).width();
setInterval(function(){
if ( $('.sa_cloud_l').offset().left > width ) {
alert('not visible anymore');
} else {
c1.css('left', '+=21');
}
},100);
选择:visible
器不考虑在浏览器的视口内。
http://api.jquery.com/visible-selector/
如果元素占用了文档中的空间,则元素被认为是可见的。可见元素的宽度或高度大于零。
具有 visibility: hidden 或 opacity: 0 的元素被认为是可见的,因为它们仍然占用布局中的空间。在隐藏元素的动画期间,该元素被认为是可见的,直到动画结束。在显示元素的动画期间,该元素被认为在动画开始时可见。
检查 jquery 插件视口http://www.appelsiini.net/projects/viewport
if ($(window).scrollLeft() <= $(this).offset().left
&& $(this).offset().left < $(window).width()+$(window).scrollLeft()
&& $(window).scrollTop() <= $(this).offset().top
&& $(this).offset().top < $(window).height()+$(window).scrollTop()) {
// at least part of 'this' is within the window
}