我有得到由涡旋事件烧成一个div定位工作。什么情况认为,滚动事件被炒鱿鱼了一堆的时间,这导致闪烁股利。我的计划是淡出该div和没有更多的滚动事件被触发,一旦褪色回。我如何检查滚动已经结束?我想到了超时的组合< - >滚动,但实际上没有什么工作,我希望。这是我走到这一步。

$(document).ready(function(){

    //var animActive = false;

    $(window).scroll(function() {

        /*
        if (animActive == false){
            animActive = true;
            $('.mceExternalToolbar').fadeOut(100, function () {
                $('.mceExternalToolbar').fadeIn(3000, function () {
                    animActive = false;
                    console.log("NOW");
                });
            });
        }
        */

        topParentx = $('#tinyMCEwrapper').position().top;
        if ($(this).scrollTop() >= topParentx){
            $('.mceExternalToolbar').css('top', ($(this).scrollTop()-topParentx) + "px");
        } else {
            $('.mceExternalToolbar').css('top', "0px");
        };
    });

});

正如你可以看到我离开了我在那里最后的尝试之一,但淡入功能的回调没有按预期工作。

有帮助吗?

解决方案

不幸的是没有滚动停止的概念,所以你不能真正触发来自一个动画。有什么可以更好地工作,是不是动画的div的“top”属性,使其顺利地滑动到它的新位置,而不是闪烁。

        topParentx = $('#tinyMCEwrapper').position().top;
        var topTarget = "0px";
        if ($(this).scrollTop() >= topParentx){
            topTarget = ($(this).scrollTop()-topParentx) + "px";
        }
        $('.mceExternalToolbar').stop().animate({top, topTarget}, 500);
scroll top