JavaScript在滚动操作上隐藏div元素

时间:2012-03-09 13:53:02

标签: javascript jquery

当用户在页面上滚动时,我正在使用这段代码来隐藏菜单栏。它在Chrome 17.0.963.78上运行良好,但在其他浏览器上保持闪烁,即I.E.火狐和野生动物园..

$(window).load(function(){
    $(document).scroll(function(){  
        $('#inner_floating').fadeOut();

        var scrollA = $('body').scrollTop();

        setTimeout(function(){
            if(scrollA == $('body').scrollTop()){
                $('#inner_floating').fadeIn();
            }
        }, 100);
    })
});

1 个答案:

答案 0 :(得分:1)

问题是你的.scroll函数是为滚动的每个像素(或鼠标滚动)调用的,所以动画连续多次运行。

尝试这样的事情:

$(window).load(function(){
    $(document).scroll(function(){  
        if($("#inner_floating:hidden").length == 0) {
            $('#inner_floating').fadeOut();
        }

        var scrollA = $('body').scrollTop();

        setTimeout(function(){
            if(scrollA == $('body').scrollTop() && $("#inner_floating:hidden").length > 0){
                $('#inner_floating').fadeIn();
            }
        }, 100);
    })
});

这样,动画只在必要时才会发生。