Jquery toggle()使我的导航栏闪烁

时间:2017-04-10 14:50:56

标签: jquery banner

我的固定导航栏上有一条横幅。当我滚动浏览它并且我的导航栏到达浏览器的顶部时,它会在该位置开始不停闪烁。

我认为它与jquery toggleClass()有关,但我不知道如何修复它。

当我检查该位置的导航栏时,它只是不断添加和删除has-monster-banner类,导致它闪烁。

googletag.pubads().addEventListener('slotRenderEnded', function(event) {

    if (event.slot.getAdUnitPath() === '/1025113/1220x200' && !event.isEmpty) {
        jQuery('body').addClass('has-monster-banner');
        jQuery(window).scroll(function() {
            jQuery('body').toggleClass('has-monster-banner', jQuery(window).scrollTop() < 220);
        });
    }
}

我该如何防止这种情况?

1 个答案:

答案 0 :(得分:1)

每次使用jquery时都会遇到闪烁的元素,想一想是什么原因造成的。显然你的切换功能永远被调用。我认为它可能与scrollTop有关。

你应该做的是决定何时应该停止调用该函数。然后通过使用标志变量执行如下操作

var flag = false;
if(mycondition && !flag){
    Do whatever you want...
    flag = true;
}
if(restart condition){
    flag = false;
}