0

在我的网站中,有一个向右滚动的浮动云(元素),我想知道它何时不再出现在屏幕上。

我该怎么做?

setInterval(function(){
    if(!jQuery('.sa_cloud_l').is(':visible')){
        alert('not visible anymore');
    }else{          
        c1.css('left', '+=21');
    }
},100);
4

4 回答 4

1

: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);
于 2012-10-03T20:47:48.487 回答
1

选择:visible器不考虑在浏览器的视口内。

http://api.jquery.com/visible-selector/

如果元素占用了文档中的空间,则元素被认为是可见的。可见元素的宽度或高度大于零。

具有 visibility: hidden 或 opacity: 0 的元素被认为是可见的,因为它们仍然占用布局中的空间。在隐藏元素的动画期间,该元素被认为是可见的,直到动画结束。在显示元素的动画期间,该元素被认为在动画开始时可见。

于 2012-10-03T20:46:30.230 回答
1

检查 jquery 插件视口http://www.appelsiini.net/projects/viewport

于 2012-10-03T20:46:34.223 回答
1
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
}
于 2012-10-03T20:46:39.210 回答