滚动jQuery总是切换到隐藏

时间:2018-04-18 10:26:20

标签: javascript jquery

我正在使用这个jQuery代码片段向下滚动隐藏菜单并在向上滚动时显示:

var prev = 0;
var $window = $(window);
var nav = $('.nav');

$window.on('scroll', function(){
    var scrollTop = $window.scrollTop();
    nav.toggleClass('hidden', scrollTop > prev);
    prev = scrollTop;
});

它按预期工作,但我只想让用户在页面向下滚动500px后启动它。

我已将该函数包装在另一个函数中以实现此结果:

$(window).scroll(function() {
    if ($(this).scrollTop() >= 500) {

        var prev = 0;
        var $window = $(window);
        var nav = $('.nav');

        $window.on('scroll', function(){
            var scrollTop = $window.scrollTop();
            nav.toggleClass('hidden', scrollTop > prev);
            prev = scrollTop;
        });

    }
});

但是,添加此选项后,当向上或向下滚动超过500px时,切换始终会恢复为class = hidden。

1 个答案:

答案 0 :(得分:1)

你的逻辑不是很正确。您只需在当前var hasher = require('wordpress-hash-node'); let wordpressHashPass = "$P$BzPE3JGpq4CUpvpMHhtPh3lZmIoG.s1"; let wordpressPlainTextPass = '(&@fZsImcKq7K3Lmd&qBe!Jx'; var checked = hasher.CheckPassword(wordpressPlainTextPass, wordpressHashPass); //This will return true console.log(checked); // returns true var hasher = require('wordpress-hash-node'); let wordpressHashPass = "$P$BzPE3JGpq4CUpvpMHhtPh3lZmIoG.s1"; let wordpressPlainTextPass = 'goodday'; var checked = hasher.CheckPassword(wordpressPlainTextPass, wordpressHashPass); //This will return false console.log(checked); // returns false 处理程序中添加if条件。试试这个:

scroll

请注意添加var prev = 0; var $window = $(window); var nav = $('.nav'); $window.on('scroll', function() { var scrollTop = $window.scrollTop(); if ($(this).scrollTop() >= 500) { nav.toggleClass('hidden', scrollTop > prev); } else { nav.addClass('hidden'); } prev = scrollTop; }); 以满足由于渲染器无法跟上滚动速度而导致值跳跃的情况。