オーバーレイ要素の不透明度を黒にフェードインしようとすると、ページの中央でターゲット要素に近づき、その要素がビューポートを終了した後に透明にフェードバックします。不透明度をスクロールしてターゲット要素に移動する
(壊れた)例: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);
});
それは近いです!私は、不透明度が、*青色のセクションがビューポートを離れた後、再度フェードアウトしてほしいと思っていました。私はあなたと一緒に遊び、その結果を管理できるかどうかを見ます。ありがとう! – daveycroqet