【发布时间】:2014-08-26 16:36:53
【问题描述】:
我正在使用 $.each 来查找我网页上的每个“屏幕”。我希望在每个屏幕变得可见时发生一些事情,然后当元素不再可见时该动作自行反转。这是最后一部分不起作用。
我正在使用 jquery 可见插件。
jquery:
$( window ).scroll(function() { //check for visibles
$.each($(".picture"), function(){
var $this = $(this);
if ($(this).visible(true)) {
setTimeout(function()
{
$this.children('.cutline_background').animate({"left":"0px"},2500, function(){});
$this.children('.text').animate({"left":"40px"},2500, function(){});
}, 3000);
} else{
$this.children('.cutline_background').css("left", "-20%");
$this.children('.text').css("left", "-20%"); }
});
});
可见部分有效。但是,在不可见的部分,我做错了什么?它似乎不再认出我的“这个”了。
【问题讨论】:
-
你为什么要重新声明
var $this = $(this);?另外根据我的理解$(this).visible(true)应该是$this.is(':visible') -
@Satpal:我正在向下滚动页面。当某物进入视野时,它是可见的。与css无关。
-
而且@Satpal 评论也与 CSS 无关。这是关于在
if内部重新声明$this的无用的,以及在此if中检查元素的可见性时出错。 -
@Regent,我正在使用可见的 jquery 插件。 github.com/teamdf/jquery-visible
标签: jquery css jquery-plugins