Jquery Slideup函数显示错误

时间:2017-10-19 16:57:03

标签: javascript jquery

我使用slideUp功能上下滑动广告拦截消息,但是当您看到广告拦截警报时,向下滚动后,导航栏需要一秒钟才能调整到顶部。它给整个过程带来了错误的外观 - 这种变化应该是即时和完美的。

您可以在此处查看示例:https://www.mallyear.com/search?q=phone

用于slideUp函数的代码是:

lst = ['AAAAAAAB', 'AAAAAABA', 'AAAAABAA', 'AAAAAABB', 'AAAAABAB', 'AAAAABBA']

要查看此广告拦截通知,需要使用" Ad Blocker Plus"在谷歌浏览器上,你应该让它运行。这个错误显示在向下滚动一秒钟但是在那里。非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我无法确定这是您正在寻找的内容,但我想您只想在幻灯片完成后更改t3-header的css,对吧?

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

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

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

修改

评论之后我想知道你是否应该一起剪切slideUp动画,并且只要用户滚动到adblock div之后就让navBar保持固定在顶部(据我理解为150px)。我会将代码更改为:

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

编辑2

还有一个选项,但这需要更改元素的设置方式。

让广告拦截器向上滑动的问题是,根据定义,用户已经向下滚动了一下,所以当广告拦截器div完全滑动时,导航栏已经过了滚动 - 顶部,只有在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")
}

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