0

我目前有以下代码在某个点后延迟显示固定条。

如果您向上滚动到顶部,代码会隐藏固定栏,但会在 2 秒后自动显示该栏,即使滚动点低于 70,因此应该将其全部隐藏。

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

一个jsFiddle显示了行为。

4

2 回答 2

1

您可以通过- FIDDLE DEMOelse if将您更改为简单else并隐藏 divdisplay: none

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

更新的演示

$(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()

于 2012-06-22T14:46:53.980 回答
0

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

于 2012-06-22T14:45:21.193 回答