2017-04-10 103 views
1

我在我的固定导航栏上有一个标题。当我滚动浏览它并且我的导航栏到达浏览器顶部时,它会在该位置不停地闪烁。jquery toggle()让我的导航栏闪烁

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

当我检查那个位置的导航栏时,它只是继续添加和删除类,导致它闪烁。

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

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

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

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

我不知道如何使用.stop()为特定的部分,如<= 221 – anon123346