こんにちは。
今、webサイトでスクロールしたらヘッダーのデザインが変化する挙動を実現したく、javascriptとjQueryを使っています。
環境としては、gulpとwebpackを連携させて、jqueryとscriptを1つのファイル「main.js」にコンパイルしています。ローカルでしか挙動は見ていませんがheadで読み込んでいるのはmain.jsのみです。
コンパイルされる前のコードは以下の通り
jQuery
1//--------------------------- 2// 外部jsファイル読み込み 3//--------------------------- 4window.$ = window.jQuery = require('jquery'); 5require('jquery.color'); 6 7//--------------------------- 8// javascriptコード開始 9//--------------------------- 10//スクロールしたらヘッダー変形 11$(function(){ 12 window.addEventListener('scroll',() => { 13 const y = window.scrollY; 14 const header = $('.Header'); 15 const text = $('.Header_nav_li a, .Header_nav_li'); 16 const logo = $('.Header_title_logo'); 17 18 //120以上スクロールしたら発火 19 if (y > 120) { 20 header.animate({ 21 'background-color':'#fff' 22 }); 23 text.animate({ 24 'color':'#333' 25 }); 26 logo.animate({ 27 'fontSize':'26px', 28 'color':'#0c6bb0', 29 'margin-top':'0' 30 }); 31 } else{ 32 header.animate({ 33 'background-color':'transparent' 34 }); 35 text.animate({ 36 'color':'#fff' 37 }); 38 logo.animate({ 39 'fontSize':'33px', 40 'color':'#fff', 41 'margin-top':'10px' 42 }); 43 } 44 }); 45}); 46
これを踏まえて実際に動きを確認してみると、120以上スクロールしたり、また120以下にスクロールを戻しても、中身の指示が5秒後とか、遅くて10秒後とかに発火されてしまいます。
なぜこんなに遅いのでしょうか?
上記コードの書き方には自信がなく、書き方に原因があるとは思うのですが...
すみませんが、原因がわかればご教授いただきたいです。アドバイスとかもあれば是非。。。
よろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/05 06:24