向下滚动后,Div会滑入

时间:2012-05-09 14:08:42

标签: jquery scroll slide scrolltop

这是我的代码 http://jsfiddle.net/mihaene/7bdkB/

当我向下滚动一定数量的像素时,我想要一个div滑入。 它工作,但非常非常延迟(如5秒)。 问题是什么?

非常感谢任何建议。

3 个答案:

答案 0 :(得分:2)

嗨,我认为问题是你的其他阻止。然后jQuery启动动画需要大约300毫秒。

var $test2 = $(".test2");
$(window).scroll(function () {
    if ($(this).scrollTop() > 100) {
        $test2.stop().animate({left: "200px"}, 300);
    } else {
        $test2.stop().animate({left: "-90px"}, 300);
    }
});

所以只需使用jQuery的stop()方法来停止这些动画。

在旁注中:也许您应该考虑不同的if / else语句,以便不像其他建议那样获得每个滚动事件的动画(或停止/重启)。

答案 1 :(得分:1)

这是我能想到的最佳解决方案,如果我错了,请纠正我。

事件被堆叠并一个接一个地被解雇。所以我的解决方案是将它们保存在队列中并在需要时清除队列。

我使用了queue

<强> DEMO

希望这有帮助

答案 2 :(得分:0)

您的jsfiddle示例没有延迟问题,但这可能是因为窗口大小很小并且滚动触发的机会不多。延迟的可能原因是滚动功能触发的频率。它们可能很快堆积起来并导致延迟。

添加一个console.log(如果使用Firebug)并在控制台中查看频率,以便更好地了解频率。