javascript - 防止滚动 jquery 脚本运行两次

标签 javascript jquery html css scrolltop

我是 jquery 新手,将以下代码放在一起,使 DIV 在设置的向下滚动量后出现。如果向上滚动,DIV 会消失。或者,一旦 DIV 出现,就会有一个关闭它的链接。这一切都按预期工作,除此之外我只希望脚本运行一次。目前,如果我向上滚动,黄色框会再次出现。我怎样才能确保盒子保持关闭状态?作为另一种选择,我可以集成 cookie 或 localStorage 吗?

非常感谢!拉斯。

Javascript:

$(function () {
    var target = $(".box");
    if ($(window).scrollTop() > 30) {
        target.hide();
    }
    $(window).scroll(function () {
        var pos = $(window).scrollTop();
        if (pos > 30) {
            target.stop(true, true).fadeIn('slow');
        } else {
            target.stop(true, true).fadeOut('slow');
        }
    });
    $('a.close').click(function () {
        $($(this).attr('href')).slideUp();
        return false;
    });
}); 

这是指向我的代码的 jsfiddle 链接:jsfiddle link

最佳答案

您可以使用 removeClass() 删除类以确保框保持封闭状态。或者在动画之后直接 $(".box").remove()。 您可以使用 cookie 存储此选择,但如果客户删除他的 cookie,它就会丢失。

关于javascript - 防止滚动 jquery 脚本运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18916133/

相关文章:

javascript - 重新定义点击选择器 jQuery

java - 是否有任何 API 或网站可以对我的 Java 代码进行颜色编码并将其转换为 html?

Javascript 根据复选框值过滤内容

javascript - res.setHeader ("Set-Cookie", ...) 没有在 Node/Express 中设置 cookie

javascript - Django 删除确认

jquery 动画背景位置 firefox

javascript - 使元素在可滚动的 div 中居中

html - [if IE 6]怎么能被IE7拿下呢?

html - 在 svg 文件中嵌入带有 @font-face 的 base 64 truetype 字体,在 IE 中不起作用

javascript - D3 鼠标滚轮缩放行为的约束