【问题标题】:Change opacity of div ONLY when scrolling - when standing still change back to full opacity仅在滚动时更改 div 的不透明度 - 静止不动时更改回完全不透明度
【发布时间】:2014-11-27 06:36:04
【问题描述】:

我正在寻找一种方法来更改 div (.header) 的不透明度以仅在滚动时更改。

所以基本上,当你滚动时,它变得几乎不透明,但当你停止滚动时,它又变得完全可见。

我寻找了一些脚本并最终得到了这些类型的 jQuery 脚本,但这只是我正在寻找的解决方案的一半:

$(window).scroll(function() {
    if ($(this).scrollTop() > 400) {
        $( ".header #background" ).fadeIn();
    } else {
        console.log('there');
        $( ".header #background" ).fadeOut();
    }
});

(http://jsfiddle.net/SEH5M/)

有什么想法吗?

【问题讨论】:

  • 使用滚动事件淡出元素,然后设置超时恢复(在事件处理函数开始时清除超时),然后只要一直滚动,元素就会一直停留消失,直到您停止滚动 x 毫秒(超时时间)

标签: jquery css scroll opacity


【解决方案1】:

通过在每个滚动事件后使用超时检查(在本例中为 200 毫秒)来查看用户是否停止滚动,您可以实现此效果。
小提琴http://jsfiddle.net/SEH5M/276/

$( ".header #background" ).fadeIn(); //initial fadein
$(window).scroll(function() {
    if(!$( ".header #background" ).hasClass('transition')){ //avoid multiple fades
        $( ".header #background" ).stop().addClass('transition').fadeOut();
    }
    var position = $(window).scrollTop();
    setTimeout(function(){
        if(position - $(window).scrollTop() == 0){ //check if scroll position has changed

            $( ".header #background" ).stop().removeClass('transition').fadeIn();
        }
    }, 200);
});

【讨论】:

  • 您好,这似乎很好用!我对背景 div 有点困惑,如果没有背景,代码是否也适用于 .header div?或者你能解释一下你为什么添加它吗?
  • 背景 div 是你原来的小提琴的一部分,所以我把它放在那里。如果您愿意,请删除#background,它会淡入淡出整个标题:)
【解决方案2】:

我认为“几乎不透明”的意思是“几乎透明”。在这种情况下,您可能不想使用fadeOut,因为它会使它完全透明。

您可以改为动画不透明度。

您可以按照其他人的建议设置计时器。

您还需要在开始新动画之前小心停止任何正在运行的动画。

这可能会满足您的需要:

var timer;
$(window).scroll(function() {
  $('.header').stop().animate({opacity:0.2},10);
  clearInterval(timer);
  timer= setInterval(function() {
    $('.header').stop().animate({opacity:1},'fast');
  },100);
});

Fiddle

【讨论】:

  • 您好!这在你的 Fiddle 上效果很好,但我无法让它工作。我假设我犯了一些愚蠢的错误,但我无法弄清楚?这是我当前的代码pastebin.com/A9QSw6yB
  • 在您的 pastebin 中,您在 jQuery UI 中进行链接,但看起来不像在 jQuery 中进行链接。在 jQuery UI 上方添加:<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
猜你喜欢
  • 2012-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
相关资源
最近更新 更多