Jquery 在卷轴上仅显示一次div

Jquery 在卷轴上仅显示一次div,jquery,scroll,conditional,show,Jquery,Scroll,Conditional,Show,当用户通过jQuery滚动时,我想显示这个DIV。我修改了一个“粘性导航”脚本。我希望它在4秒后从视图中消失,所以我在延迟后添加了removeClass。这一切都是可行的,但我想确保这只发生在用户可以左右滑动时 这是HTML <div id="inhoudMobiel"> <div id="swipetip"></div> <div id="swipetipanker"></div>

当用户通过jQuery滚动时,我想显示这个DIV。我修改了一个“粘性导航”脚本。我希望它在4秒后从视图中消失,所以我在延迟后添加了removeClass。这一切都是可行的,但我想确保这只发生在用户可以左右滑动时

这是HTML

     <div id="inhoudMobiel">

        <div id="swipetip"></div>

        <div id="swipetipanker"></div>

    </div>    

将“on”和“off”文本替换为0和1更具逻辑性,并主要改进了比较器以进行实际比较,而不是重新设置变量。不过,我想显示的DIV在每次滚动时只显示一次。在控制台中,您将看到一个“1”,后跟一系列零。因此,重置变量是可行的,但比较器不可行。此外,滚动时零会不断出现,因此滚动检测基本上会继续工作,即使它不应该这样做。

如果您按如下方式更改代码,它将防止它在If语句中多次运行,以检测stickyCount是否从其初始值更改,您使用的是=这是一个赋值运算符,它更改了stickyCount的值,而不是对其进行比较。将其更改为===可以确保您正在进行正确的比较,这正是您想要的

$document.readyfunction{ var stickyCount='aan', firstRun=true; console.logstickyCount; var stickyNavTop=$'swipetipanker'.offset.top; var stickyNav=函数{ var scrollTop=$window.scrollTop; 如果stickyCount=='aan'{ 如果scrollTop>stickyNavTop{ $'body'.addClass'sticky'; setTimeoutfunction{$'body'.removeClass'sticky'},4000; 粘性计数='uit'; console.logstickyCount; } } }; $window.scroll函数{ 粘滞导航; };
}; 我现在已经以一种不那么优雅的方式解决了这个问题,但它满足了我的需要:

$(document).ready(function() {

var stickyNavTop = $('#swipetipanker').offset().top;

var stickyNav = function(){
    var scrollTop = $(window).scrollTop();
    if (scrollTop > stickyNavTop) {
        $('body').addClass('sticky');
        setTimeout(function(){$('body').removeClass('sticky')}, 4000);
        setTimeout(function(){$('#swipetip').remove()}, 4000);
    }
};

    $(window).scroll(function() {
        stickyNav();
    }); 
});

我只是在显示一次swipetip DIV之后从DOM中删除它。不那么优雅,因为滚动侦听器保持完整,什么也不听,但它确实起到了作用。

谢谢,我真傻,没有查比较运算符,你说的有道理。不过,我的行为还是一样的。我在“$window.scroll”函数周围放置了“if”语句,因为在您不再需要滚动检测后,无需继续滚动检测,但我的div仍然会在每次滚动运动中出现。在控制台中,您将得到一个初始计数器,后面是一系列“首次使用后”计数器,因此这在某种程度上是可行的,但div仍然会不断出现。
$(document).ready(function() {

var stickyNavTop = $('#swipetipanker').offset().top;  

var stickyNav = function(){
        var scrollTop = $(window).scrollTop();
        if (scrollTop > stickyNavTop) {
            $('body').addClass('sticky');
            setTimeout(function(){$('body').removeClass('sticky')}, 4000);
            var stickyCount = 0;
            console.log(stickyCount);
            }
        };

var stickyCount = 1;
console.log(stickyCount);

if (stickyCount === 1) {
    $(window).scroll(function() {
            stickyNav();
    });
}
});  
$(document).ready(function() {

var stickyNavTop = $('#swipetipanker').offset().top;

var stickyNav = function(){
    var scrollTop = $(window).scrollTop();
    if (scrollTop > stickyNavTop) {
        $('body').addClass('sticky');
        setTimeout(function(){$('body').removeClass('sticky')}, 4000);
        setTimeout(function(){$('#swipetip').remove()}, 4000);
    }
};

    $(window).scroll(function() {
        stickyNav();
    }); 
});