Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery在滚动时淡入淡出/不透明度,但返回顶部时禁用_Jquery - Fatal编程技术网

jquery在滚动时淡入淡出/不透明度,但返回顶部时禁用

jquery在滚动时淡入淡出/不透明度,但返回顶部时禁用,jquery,Jquery,$(窗口)。滚动(函数(){ if($(this).scrollTop()>100 | |$('.header,.footer').css('opacity')==1){ 如果($(窗口).width()>478) { var elem=$('.header,.footer'); setTimeout(函数(){ css({“不透明度”:“0”,“转换”:“2s”}); },5000); css({“不透明”:“1”,“过渡”:“1s”}); } }否则{ 返回fals

$(窗口)。滚动(函数(){
if($(this).scrollTop()>100 | |$('.header,.footer').css('opacity')==1){
如果($(窗口).width()>478)
{
var elem=$('.header,.footer');
setTimeout(函数(){
css({“不透明度”:“0”,“转换”:“2s”});
},5000);            
css({“不透明”:“1”,“过渡”:“1s”});
} 
}否则{
返回false;
}
});
.header{top:0;位置:固定;宽度:100%;高度:50px;背景:红色;}
.content{高度:1500px;}
.footer{底部:0;位置:固定;宽度:100%;高度:50px;背景:红色;}

只需添加一项检查,查看用户滚动的距离:

$(window).scroll(myController);

function myController() {
  if($(window).width() > 1199 && $(document).scrollTop() > 50) {

    var elem = $('.header,.footer');

    setTimeout(function() {
        elem.css({"opacity":"0","transition":"2s"});
    },10000);            

    elem.css({"opacity":"1","transition":"1s"}); 
  }   
}
注意1:您应该取消滚动事件的盎司,因为它会触发 非常频繁。请参见一个流行的库或一个实现


注2:您还应该缓存选择器(
$(窗口)
$('.header,.footer')
),因为每个滚动事件都会查找atm页眉和页脚。

您还需要检查不透明度和顶部,以便可以在下面使用

$(window).scroll(function () {
    if ($(this).scrollTop() > 10 || $('.header,.footer').css('opacity') ==1) {
        if($(window).width() > 1199)
        {
            var elem = $('.header,.footer');
            setTimeout(function() {
                elem.css({"opacity":"0","transition":"2s"});
            },10000);            
            elem.css({"opacity":"1","transition":"1s"}); 
        } 
    } else {
       return false;
    }

});

你好,谢谢你的回答。我不确定原因是否是去盎司,但当返回顶部脚本仍在工作/循环。scrollTop()>50)指令在启动时工作正常,同时setTimeout(函数()在滚动时工作正常,但如果滚动回顶部,脚本仍在循环,但我需要一些东西来停止函数(默认不透明度=1)试图关闭所有其他脚本,但没有结果是否因为超时值太长?在您最初的帖子中,您的代码的超时时间为
10000
,即10秒。如果您减少(或删除它?),当滚动到顶部时,问题是否仍然存在?是的,如果设置为40002000甚至200,则不会发生任何情况,如果完全删除-即使在滚动时也不工作。老实说,使用不透明隐藏是个坏主意,我将尝试使用显示/隐藏或其他方式。谢谢您的时间!您好,谢谢。同上。当返回顶部时“.scrollTop()>10”指令不再工作,“setTimeout(function()”仍在循环,但我只需要在滚动时隐藏元素,而不需要在topokay上隐藏元素,因此您需要停止setTimeout()。您可以在clearTimeout()中设置其他条件。正在尝试..2h:),但运气不好。我认为此方法有问题。可能是.scrollTop()>…和setTimeout..可能是不同的函数,我不知道。无论如何,谢谢你的时间。我会尝试其他的,而不是隐藏。