滚动更改元素不透明度

时间:2014-12-24 02:18:23

标签: javascript scroll opacity

我已经让它几乎可以工作了,但是当我向上滚动时,不透明度变化的速度有问题,也有问题。

的jsfiddle http://jsfiddle.net/dp1b51fs/2/

  1. 我确实把它设置为5000>> $(".bgimage").animate({opacity: 0.4}, "5000"); 但它似乎与我500时的速度相同。我做错了什么? (尝试写过“5000ms”和“500s”,但它是一样的)
  2. 当我向下滚动时,元素(背景图像)淡出为0.4不透明度。但是当我向上滚动时,不透明度只会变为1个不透明度并且不会消失或类似。

1 个答案:

答案 0 :(得分:2)

您需要在动画前运行.stop(),否则您只是停止正在尝试的向上滚动动画:

$(document).scroll(function () {
    if ($(this).scrollTop() > 500) {
      $(".bgimage").stop().animate({opacity: 0.4}, 500);
    } else {
      $(".bgimage").stop().animate({opacity: 1}, 500);
    }

});

JSFiddle


<强> Edit: 为了澄清我的代码你做了什么:

我删除了$(this).scrollTop() > 1,因为如果$(this).scrollTop() > 500为真,那么另一个也已经为真,所以最终不需要它。

我将你的滚动动画包裹在一个else语句中,因为你原来做的是触发用户滚动的任何东西(即使它们超过500),它看起来有点乱,你发射了两个立即运作。

我也删除了return因为我在你的上下文中没有看到它。