在滚动div逐渐淡出淡出

在滚动div逐渐淡出淡出

问题描述:

我想创建淡入淡出效果与滚动,但不知道如何。它就像http://www.popsci.com/。如果滚动,则背景图像(div id fixed-image)会变淡。他们的代码就像。但我还无法弄清楚如何在我的代码中轻松应用。请家伙们检查一下我的代码。在滚动div逐渐淡出淡出

var opacity = 1; 
     var img = element.find('img'); 
     // Look for featured stories. 
     if (element.length > 0) { 
     // Attach background image element. 
     $('#page-wrapper').prepend('<div id="fixed-image" style="background-image: url(\'' + img.attr('data-lgsrc') + '\');"></div>'); 
     img.addClass('hidden'); 
     var scrollPercent; 
     $(window).scroll(function() { 
      // When User scrolls down, determine percentage from top to bottom of window. 
      scrollPercent = (($(window).scrollTop()/$(window).height() * 1.9) - 0.9); 
      if (scrollPercent < 0) { 
      $('#fixed-image').css({ 
       '-webkit-filter' : 'blur(0px)', 
       '-moz-filter'  : 'blur(0px)', 
       '-o-filter'  : 'blur(0px)', 
       '-ms-filter'  : 'blur(0px)', 
       'filter'   : 'blur(0px)' 
      }); 
      } 
      var opacityCount = 1.5 - Math.min(1.5, (scrollPercent + 1)); 
      $('#fixed-image').css('opacity', opacityCount); 
      if (scrollPercent <= 1) { 
      $('#fixed-image').css('opacity', opacityCount); 
      $('#fixed-image').css({ 
       '-webkit-filter' : 'blur(' + scrollPercent * 10 + 'px)', 
       '-moz-filter'  : 'blur(' + scrollPercent * 10 + 'px)', 
       '-o-filter'  : 'blur(' + scrollPercent * 10 + 'px)', 
       '-ms-filter'  : 'blur(' + scrollPercent * 10 + 'px)', 
       'filter'   : 'blur(' + scrollPercent * 10 + 'px)' 
      }); 
      } 
      else { 
      $('.content-wrapper-outer').css('background-color', 'rgba(255,255,255,' + opacity + ')'); 

我的演示是在这里https://jsfiddle.net/cyber007/6e6dbr6j/1/

我想滑块类将是淡入淡出,并逐步立足于滚动

UPDATE

$(window).scroll(function(){ 
    $(".slider").css("opacity", 1 - $(window).scrollTop()/250); 
    }); 

https://jsfiddle.net/cyber007/6e6dbr6j/2/这个工作正常。在控制台中,我想到一个小小的想法,即在即使去-值之后,看到不透明度值继续运行。我不认为值没有必要降值之后更

+1

什么是你想淡出?无论图像显示在滑块?什么是你的JS代码中的“元素”? –

+0

我只是更新我的问题。我想滑块div将淡入像参考网站淡出。在滑块div。不管内容是什么。目前的演示我只是把bxslide。感谢您的回复 – pagol

+0

您的新提琴仍然没有您的js代码,就像您的问题一样。请检查并添加它,因为它是在您的原始代码中。 –

这里是在0到夹不透明度的功能,但according to MDN:“在区间外的任何值[01],虽然有效,被钳范围内最近的限制“,所以这不是必须的。

$(window).scroll(function(){ 
    var opacity = 1 - $(window).scrollTop()/250; 
    if (opacity < 0) opacity = 0; 
    $(".slider").css("opacity", opacity); 
}); 

UPDATE

任意开始和你的过渡的结束时,使用线性方程enter image description here,就像这样:

$(window).scroll(function(){ 
    var start = 200, end = 600; 
    var opacity = 1 - ($(window).scrollTop() - start)/(end - start); 
    if (opacity > 1) opacity = 1; 
    if (opacity < 0) opacity = 0; 
    $(".slider").css("opacity", opacity); 
    }); 

Here's a JSFiddle.

+0

感谢您的回答。 我只是想如何设置滚动的起点。我的意思是不透明将开始当滚动位置200然后结束600 – pagol

+0

更新答案设置起点 – Rafi

+0

哇..冷静的男人..非常感谢。 – pagol