2017-10-19 103 views
0

即时通讯使用slideUp功能上下滑动广告屏蔽消息,但是当您看到广告屏蔽提醒后,向下滚动后,导航栏需要一秒才能调整到顶部。它为整个过程提供了一辆越野车的外观 - 这种改变应该是即时和完美的。Jquery Slideup Function显示一个错误

,你可以在这里看到一个例子:https://www.mallyear.com/search?q=phone

使用的效果基本show函数的代码林是这样的:

jQuery(window).on("scroll", function(){ 


    // adblocker is the Id for the ad message 
    // t3-header is the Id for the Nav bar 

    var startY = 1; 

    if(jQuery(window).scrollTop() > startY){ 

     jQuery('#adblocker').slideUp("fast"); 
      jQuery('#t3-header').css({position: 'fixed', top: '0px'}); 



    }else{ 

     jQuery('#adblocker').slideDown("fast"); 
     jQuery('#t3-header').css({position: 'static', top: '80px'}); 

    } 

     }); 

看到这Adblock的通知,需要一个扩展,如“广告拦截加上”在谷歌浏览器上,你应该运行它。该错误显示当滚动下来一秒钟,但在那里。非常感谢您的帮助

+0

在附注中,您只需要将位置更改为静态,顶部值不需要更改,并且在元素为静态时不会应用 – Huangism

回答

0

我不能确定这是你在找什么,但我想你只想在幻灯片完成后才能更改t3-header的css,对吗?

如果是这样,一旦幻灯片完成后您想要发生的任何事情都应作为slideUp/slideDown函数的附加参数传递给函数。例如:

jQuery('#adblocker').slideUp("fast", function() { 
    jQuery('#t3-header').css({position: 'fixed', top: '0px'}); 
}); 

如果这不是问题的原因,我道歉!

编辑

的意见后,我不知道,也许你应该切出的效果基本show动画都在一起,只是有导航栏固定停留在顶端,一旦用户滚动超越的Adblock DIV(150像素作为我明白)。我将代码改成这样:

if(jQuery(window).scrollTop() > 150){ 
    jQuery('#t3-header').css({position: 'fixed', top: '0px'}); 
}else{ 
    jQuery('#t3-header').css({position: 'static'}); 
} 

EDIT 2

好的一个选择,但这需要改变你的元素是如何成立。

让广告拦截器向上滑动的问题在于,根据定义,用户已经向下滚动了一下,所以当广告拦截器div完全滑动时,导航栏已经过去滚动-top,只有当它的css被更改为固定时,才能再次回退。

所以你需要的是将navbar和adblocker div都放在一个固定的容器div中。这将无需更改导航栏本身的CSS,并且可以在adblocker上使用slideUp动画,并以正确的位置结束。所以,你必须:

<div id ="navContainer" style="position:fixed; top:0px"> 
    <div id = "adblocker" class = "container-fluid"> 
     ... 
    </div> 
    <div id = "t3-header" class="container t3-header"> 
     ... 
    </div> 
</div> 

(你可以把该CSS在你的CSS文件,一旦你满意的你当然有什么)

而且在JavaScript您有:

if(jQuery(window).scrollTop() > 1){ 
    jQuery('#adblocker').slideUp("fast") 
}else{ 
    jQuery('#adblocker').slideDown("fast") 
} 

我怀疑这会提供你所希望的效果。

+0

我认为OP希望得到相反的 – Huangism

+0

谢谢,但并未解决导航栏无法快速调整并且看起来不好的错误 –

+0

您想让导航栏随着窗口的滚动自然升起,还是以与slideUp动画相同的速度升起?我的答案假设了第二种选择。问题是,现在您的代码在启动slideUp动画的同时将导航栏设置为顶部位置,从而无需动画。我会补充说,有了navbar刚刚上升与滚动在我看来会更自然 –