我已经让它几乎可以工作了,但是不透明度变化的速度有问题,当我向上滚动时也有问题。
Jsfiddle http://jsfiddle.net/dp1b51fs/2/
- 我确实将它设置为 5000 >>
$(".bgimage").animate({opacity: 0.4}, "5000");
但它似乎和我在 500 上的速度一样。我做错了什么? (试过写“5000ms”和“500s”但都是一样的) - 当我向下滚动时,元素(背景图像)淡出到 0.4 不透明度。但是,当我向上滚动时,不透明度只会变为 1,并且不会淡入或类似。
最佳答案
您需要在动画之前运行 .stop()
,否则您只是停止了您尝试做的向上滚动动画:
$(document).scroll(function () {
if ($(this).scrollTop() > 500) {
$(".bgimage").stop().animate({opacity: 0.4}, 500);
} else {
$(".bgimage").stop().animate({opacity: 1}, 500);
}
});
编辑:
澄清我对你的代码做了什么:
我删除了 $(this).scrollTop() > 1
因为如果 $(this).scrollTop() > 500
为真,那么另一个已经是也是如此,所以最终,没有必要。
我将向上滚动的动画包装在 else
语句中,因为您最初做的是触发用户滚动的任何内容(即使它们超过 500),它看起来有点乱,而且您一次触发两个函数。
我还删除了 return
,因为我发现它在您的上下文中没有用过。
关于javascript - 滚动更改元素不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27630608/