所以,我有一个时事通讯注册框,它在页面的特定位置淡入淡出。注册框还有一个按钮可以关闭它。单击此按钮时,我希望它在重新加载页面之前不再显示。我的假设是分配一个 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/

10-13 06:52