所以,我有一个时事通讯注册框,它在页面的特定位置淡入淡出。注册框还有一个按钮可以关闭它。单击此按钮时,我希望它在重新加载页面之前不再显示。我的假设是分配一个 disablefade 变量,然后停止要执行的滚动功能。然而,由于某种原因,这不起作用。当点击不感谢并再次滚动时,div 将再次显示...
谢谢你的帮助!
jQuery(document).ready(function($) {
$("#nl-pop").hide(); //hide nl block initially
var disableFade = "false";
var topOfOthDiv1 = $("#newsletter-cta").offset().top - 1500;
var topOfOthDiv3 = $("#newsletter-cta").offset().top;
jQuery('#no-thanks').click(function(event) {
event.preventDefault();
jQuery('#nl-pop').fadeOut('slow');
var disableFade = "true";
});
console.log(disableFade);
if(disableFade === "false")
{
$(window).scroll(function() {
if($(window).scrollTop() topOfOthDiv1) { //scrolled past the other div?
$("#nl-pop").fadeOut(200); //reached the desired point -- show div
}
}
});
}
});
最佳答案
禁用淡入淡出变量值应在滚动功能内检查,如下所示。
$(window).scroll(function() {
//here you check whether disableFade==="false"
if($(window).scrollTop().topOfOthDiv1 && disableFade==="false") {
$("#nl-pop").fadeOut(200);
}
}
});
在代码中,您使用条件检查滚动功能之外的 disableFade 值。
此外,每次使用变量时都不应该使用 var。
关于javascript - 单击链接时如何禁用淡入/淡出 div,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36512103/