前提・実現したいこと
jQueryを用いたスクロールで要素がアニメーションと共に表示される機能を作りました。
特にエラーはなく動いているのですが、もっとうまいやり方はないかと思い、ご意見を頂けないかと思っています。
気になっているのは、表示する要素の数だけif文が書かれている部分です。
仕組みは、cssであらかじめ要素のopacityを0、bottomを-200pxなどにして
javascript側でcssを変更するといったものです。
アニメーションはtransitionを用いて実装しています。
該当のソースコード
javascript
1$(window).on('load scroll resize', function(){ 2 3 // 現在のスクロール値 4 let pageOffset = $(window).scrollTop(); 5 6 // windowの高さ 7 let windowHeight = $(window).innerHeight(); 8 9 // 表示マージン 10 const ambiguous = 200; 11 12 // 各要素のオフセットと処理 13 // プロフィール 14 let profile = $('section#profile').offset(); 15 if(pageOffset > profile.top - windowHeight + ambiguous) { 16 $('section#profile').css({ 17 'opacity':1, 18 'bottom': 0 19 }); 20 } 21 22 // インフォメーション 23 let info = $('section#info').offset(); 24 if(pageOffset > info.top - windowHeight + ambiguous) { 25 $('section#info').css({ 26 'opacity':1, 27 'bottom': 0 28 }); 29 } 30});
補足情報(FW/ツールのバージョンなど)
ソースコードのコメントの 各要素のオフセットと処理 以下の部分が要素の数だけずらっと書いてあります。
こちらにはプロフィールとインフォメーションの2つだけ記載しました。
回答1件
あなたの回答
tips
プレビュー