JavaScript初心者です。
トップページは全画面のファーストビューを通り過ぎたら固定ヘッダーの背景色を黒くし、下層ページでは600pxや400pxなどの高さのキービジュアルが通り過ぎたら固定ヘッダーの背景を黒くしたいのですが、いろんなサイトを参考にしながらコードを書いていますが、うまく機能してくれません。
どなたかわかる方ご教示いただきたいです。
下記JSコードはいろいろ調べながら自分なりに書いたコードです。
ブラウザでは
Uncaught ReferenceError: $window is not defined
at script.js:19
at script.js:28
というエラーが出ています。
HTML
1<header> 2<h1>テスト</h1> 3 <nav> 4 <ul> 5 <li><a>aaa</a></li> 6 <li><a>bbb</a></li> 7 <li><a>ccc</a></li> 8 </ul> 9 </nav> 10</header> 11<main> 12<div class="kv-animation"></div> 13・ 14・ 15・ 16</main>
CSS
1.bg-on { 2gackground: black; 3}
JavaScript
1 // ヘッダー規定位置から変化 2 //.kv-animation要素↓ 3 var header = $(".header") 4 var kvAnimation = $(".kv-animation"); 5 //スクロール量↓ 6 $scrollTopDistance = $(window).scrollTop(); 7 //.kv-animationの高さ量↓ 8 var $kvAnimationHeight = kvAnimation.outerHeight(true); 9 $scrollTopDistance = $(window).scrollTop();//スクロール量を取得 10 $window.on('scroll', function () {//スクロール操作するたびに起動 11 if ($scrollTopDistance >= $kvAnimationHeight) {//もしスクロール量が.kv-animationの高さを上回ったら 12 //クラスを追加する 13 header.addClass('bg-on'); 14 } else if ($scrollTopDistance <= $kvAnimationHeight) {//もしスクロール量が.kv-animationの高さを下回ったら。 15 //クラスを除去する 16 header.removeClass('bg-on'); 17 } 18 });
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/14 10:46
2020/04/14 11:00
2020/04/14 11:23