jQuery:向下滚动时立即隐藏元素

时间:2014-10-03 07:13:25

标签: jquery

我想隐藏滚动元素。但是,直到大约四分之一/半窗口滚动才会隐藏,这不是我想要的。滚动开始后它应该隐藏起来。

我有一个不断淡入淡出的元素,直到你开始滚动,此时它会消失。滚动回到顶部,它会再次出现并开始淡入淡出。

这是我的代码:

<script type="text/javascript">
$(function () {

    var $element = $('#scrollDown');
    var $load = true;
    var $pos = ( $(window).scrollTop() );

    (function fadeInOut() {
        setInterval(function () {
            if ($load) {
                $element.fadeIn(750, function () {
                    $element.fadeOut(1000);
                });
            }

            $(window).scroll(function() {
                if ($(this).scrollTop() > $pos) {
                    $load = false;
                    $element.fadeOut(1000);
                }
                else {
                    $load = true;
                }
            });
        }, 500);
    }) ();
}

2 个答案:

答案 0 :(得分:1)

如果我明白了,你想在开始滚动时消失元素,当重新返回到顶部时,再次出现,所以我会尝试这样做:

$(window).scroll(function() {

    if($(this).scrollTop() > 0) {
        $element.fadeOut(1000);
    } else {
        $element.fadeIn(1000);
    }
});

这就是你需要的吗?

在此处查看:http://jsfiddle.net/benjasHu/4uj50cg3/1/

答案 1 :(得分:0)

您需要做的就是将if语句更改为类似..

$(window).scroll(function() {
            if ($element.css("opacity") == 1) {
                $load = false;
                $element.fadeOut(1000);
            }
            else {
                $load = true;
            }
        });

现在它会在滚动开始时立即触发,并且只会因为if语句而触发一次。