javascript - 仅在滚动上显示一次 div

标签 javascript jquery

正如标题所说!我让这个 div 出现在滚动条上,并且我有代码,但我希望该操作仅发生一次。如果我决定关闭 div(这是一个警报)并再次向下滚动,则不会再次发生。我怎样才能实现这个目标?

我已经阅读了我能找到的所有内容,但由于我是新手,所以这对我来说太困惑了,无法理解。

无论如何,这是我到目前为止的代码:

$(document).scroll(function () {
    var y = $(this).scrollTop();
    if (y > 100) {
        $('#alert').fadeIn();
    } 
});

我需要添加什么? 谢谢!

最佳答案

如果你设置了一个标志变量来查看它是否已经设置。我会使用 .data 来避免变量名称冲突。

$(document).scroll(function () {
    var y = $(this).scrollTop();
    if (y > 100 && !$(this).data("once")) {
        $('#alert').fadeIn();
        $(this).data("once", true);
        console.log("invoked once");
    } 
});
body {
  height:700px;
}
#alert {
  bottom:70px;
  position:fixed;
  display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="alert">test</div>

关于javascript - 仅在滚动上显示一次 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43381387/

相关文章:

javascript - 使用 jquery 将 textarea 中的文本添加到表中

javascript - 将模型添加到 Marionette ItemView 定义之外的主干集合

javascript - 如何告诉 Razor 不要 html 转义

javascript - 具有多个动画的 .animate 队列

javascript - 单击 "update"后,检查与正在编辑的帖子对应的单选按钮,如果存在验证错误

javascript - Owlcarousel设置上传到服务器时不显示

javascript - 使用 jQuery jqXHR responseText 在警报窗口中换行

javascript - 自动滚动 DIV -

javascript - Angular js指令在表单中未保存数据时显示浏览器后退按钮的警报

javascript - HTML5 - 从本地路径动态创建图像?