延迟显示固定栏,但立即隐藏

时间:2012-06-22 14:40:22

标签: jquery

我目前有以下代码,在某一点之后延迟显示固定栏。

如果您向上滚动到顶部,代码会隐藏固定栏,但是在2秒后自动显示栏,即使滚动点低于70,所以它应该一起隐藏。

    $(window).scroll(function() {
        if($(window).scrollTop() > 70) {
            $('#mini-header').delay(2000).show(0);
        } else if($(window).scrollTop() < 70) {
            $('#mini-header').hide();
        }
    });

jsFiddle显示行为。

2 个答案:

答案 0 :(得分:1)

您可以将else if更改为简单else并隐藏div display: none - FIDDLE DEMO

$(document).ready(function() {
    $(window).scroll(function() {
            if($(window).scrollTop() > 70) {
                $('#mini-header').delay(2000).show();
            } else {
                $('#mini-header').css("display", "none");
            }
    });
});

UPDATED DEMO

$(document).ready(function() {
    $(window).scroll(function() {
            if ( $(window).scrollTop() > 70 ) {
                $('#mini-header').stop().animate({ opacity:1 }, 2000, function() {
                    $(this).css("display", "block");
                });
            } else {
                $('#mini-header').stop().animate({ opacity:0 }).css("display", "none");
            }
    });
});

animate()的作用类似于delay(),但不同之处在于您可以stop()

答案 1 :(得分:0)

从show()中删除0似乎可以解决问题。 http://jsfiddle.net/the_archer/Ds4Ls/