【发布时间】:2016-10-12 13:59:45
【问题描述】:
我试图让覆盖 div 的不透明度在您接近页面中间的目标元素时淡化为黑色,然后在该元素退出视口后淡化回透明。
(损坏)示例:https://jsfiddle.net/dtcgbxcn/3/
当您接近“蓝色”部分时,它应该会变暗。在蓝色部分进入视口之前,页面应该是纯黑色。然后,在蓝色部分退出视口后,它开始逐渐淡出不透明度。当您到达页面底部(或另一个目标元素)时,覆盖应该再次完全透明。
请注意,由于响应能力的原因,这些部分的高度是不确定的。
$(window).on('scroll', function() {
var st = $(this).scrollTop(),
offset = $('.blue').offset().top - $('.blue').height(),
opacity = st / offset;
_docHeight = $('.red').height() + $('.blue').height() + $('.yellow').height();
$('.overlay').height(_docHeight);
if (opacity > 2) {
opacity = 3 - opacity;
}
$('.overlay').css('opacity', opacity);
});
【问题讨论】:
标签: javascript jquery html css scroll