質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1364閲覧

スクロールをしたらハンバーガーメニューの色を変わるようにしたが、スクロールをtopまで戻したら色が戻るようにしたい。

gakki---

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2022/04/24 09:14

わかる方がいらっしゃいましたらご教示お願いします。

HTML

1 <header class="header"> 2 <div class="header-inner"> 3 <div class="header-logo js-header"> 4 <a href="index.html"><img src="img/logo-w.svg" alt="" 5 class="header-logo js-header -before"/></a> 6 <a href="index.html"><img src="img/logo-b.svg" 7 alt="" class="header-logo js-header -after"/></a> 8 </div> 9 <nav class="header-nav"> 10 <ul class="nav-list" id="nav-list"> 11 <li class="nav-items"> 12 <a href="#top"> 13 <p class="nav-items-ja">トップ</p> 14 <p class="nav-items-en">TOP</p> 15 </a> 16 </li> 17 <li class="nav-items"> 18 <a href="#service"> 19 <p class="nav-items-ja">事業内容</p> 20 <p class="nav-items-en">SERVICES</p> 21 </a> 22 </li> 23 <li class="nav-items"> 24 <a href="#about"> 25 <p class="nav-items-ja">園崎組について</p> 26 <p class="nav-items-en">ABOUT</p> 27 </a> 28 </li> 29 <li class="nav-items"> 30 <a href="#works"> 31 <p class="nav-items-ja">園崎組の実績</p> 32 <p class="nav-items-en">WORKS</p> 33 </a> 34 </li> 35 <li class="nav-items"> 36 <a href="#recruit"> 37 <p class="nav-items-ja">採用情報</p> 38 <p class="nav-items-en">RECRUIT</p> 39 </a> 40 </li> 41 <li class="nav-items"> 42 <a href="#contact"> 43 <p class="nav-items-ja">お問い合わせ</p> 44 <p class="nav-items-en">CONTACT</p> 45 </a> 46 </li> 47 </ul> 48 </nav> 49 </div> 50 <button class="burger-btn"> 51 <span class="bar bar-top"></span> 52 <span class="bar bar-mid"></span> 53 <span class="bar bar-bottom"></span> 54 </button> 55 </header>

css

1.header-logp{ 2padding: 15px 10px 10px; 3} 4.header-logo img{ 5 padding: 0; 6} 7.slide-img img{ 8 object-position: 25%; 9} 10.header.fixed{ 11 color: #ffffff; 12} 13.header-nav{ 14 display: none; 15 position: fixed; 16 top: 0; 17 left: 0; 18 width: 100%; 19 height: 100vh; 20 background: #4462a7; 21} 22.nav-list { 23 height: 100%; 24 flex-direction: column; 25 justify-content: center; 26 align-items: center; 27 padding: 0; 28 z-index: 9999; 29} 30.nav-items { 31 margin: 0 0 50px; 32} 33.burger-btn { 34 display: block; 35 position: absolute; 36 top: 15px; 37 right: 4vw; 38 z-index: 9999; 39} 40.burger-btn .bar { 41 display: block; 42 height: 3px; 43 width: 30px; 44 background-color: #FFFFFF; 45 transition: .3s; 46} 47 48.bar-top, 49.bar-mid { 50 margin-bottom: 8px; 51} 52.burger-btn.cross .bar-top{ 53 transform: rotate(45deg) translate(8px,8px); 54 transition: .3s; 55} 56.burger-btn.cross .bar-mid{ 57 opacity: 0; 58 transition: .3s; 59} 60.burger-btn.cross .bar-bottom{ 61 transform: rotate(-45deg) translate(8px,-8px); 62 transition: .3s; 63} 64.burger-btn.headerLogoScroll .bar{ 65 background-color: #191919; 66} 67body.noscroll { 68 overflow: hidden; 69} 70button { 71 background-color: transparent; 72 border: none; 73 cursor: pointer; 74 outline: none; 75 padding: 0; 76 appearance: none; 77} 78.button{ 79 height: 50px; 80 width: 120px; 81 margin-right: 15%; 82} 83.nav-items::after{ 84 display: none; 85}

jquery

1// スティッキーヘッダー 2$(function(){ 3 var $win = $(window), 4 $fv = $('.fv'), 5 $header = $('.header'), 6 fvHeight = $fv.outerHeight(); 7 fixedClass = 'fixed'; 8 9 $win.on('load scroll',function(){ 10 var value = $(this).scrollTop(); 11 if($win.width() > 80){ 12 if( value > fvHeight){ 13 $header.addClass(fixedClass); 14 }else{ 15 $header.removeClass(fixedClass); 16 } 17 } 18 }); 19 }); 20 21 // スクロールするとロゴ画像と色変更 22$(function () { 23 $(window).on("scroll", function () { 24 const sliderHeight = $(".header").height(); 25 if (sliderHeight - 30 < $(this).scrollTop()) { 26 $(".js-header,.burger-btn").addClass("headerLogoScroll"); 27 } else { 28 $(".js-header").removeClass("headerLogoScroll"); 29 } 30 }); 31});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

スクロールのイベントリスナ内で$(this).scrollTop()が0の時にheaderLogoScrollクラスをつければいいように思います。

投稿2022/04/27 03:10

Lhankor_Mhy

総合スコア36115

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gakki---

2022/04/28 13:41

自分的に考えて見たのですが、分からなくて申し訳ないです。 $(function () { $(window).on("scroll", function () { const sliderHeight = $(".header").height(); if (sliderHeight - 30 < $(this).scrollTop()) { $(".js-header,.burger-btn").addClass("headerLogoScroll"); } else { $(".js-header").removeClass("headerLogoScroll"); } }); }); このコード内にどのように付ければ良いのでしょうか。
gakki---

2022/04/28 13:51

$(function () { $(window).on("scroll", function () { $(this).scrollTop() > 100 { addClass('headerLogoScroll'); } const sliderHeight = $(".header").height(); if (sliderHeight - 30 < $(this).scrollTop()) { $(".js-header,.burger-btn").addClass("headerLogoScroll"); } else { $(".js-header").removeClass("headerLogoScroll"); } }); }); ここまでいけたのですが、何を間違えてますでしょうか?
Lhankor_Mhy

2022/04/30 03:01

すいません、逆でしたね。.burger-btn の headerLogoScroll クラスを外すのが正解だと思います。
gakki---

2022/04/30 03:43

試して見たのですが、うまくいかないです。 具体的なコード教えていただけないでしょうか。
Lhankor_Mhy

2022/04/30 03:54

一揆に正しいコードを書こうとせずに、ひとつづつ潰していくのがいいと思いますよ。 「スクロールをtopまで戻したら色が戻るようにしたい。」は ・スクロールをtopまで戻したら ・色が戻る の二つに分解して、まずひとつ目からチャレンジしてみてはどうですか? if ($(this).scrollTop() == 0) { alert(); }
Lhankor_Mhy

2022/04/30 09:07

ひとつ目ができたら、ふたつ目に挑戦してみてください。 「.burger-btn の headerLogoScroll クラスを外す」をjQueryで書くには、 ・.burger-btn の要素を指定してjQueryオブジェクトを作る ・jQueryオブジェクトのremoveClassメソッドを呼び出す ・引数にクラス名を渡す(headerLogoScroll) ということを記述します。
gakki---

2022/04/30 14:21

分かりやすく詳しく本当にありがとうございます。 $(function () { $(window).on("scroll", function () { const sliderHeight = $(".header").height(); if (sliderHeight - 30 < $(this).scrollTop()) { $(".js-header,.burger-btn").addClass("headerLogoScroll"); } else { $(".js-header").removeClass("headerLogoScroll"); if ($(this).scrollTop() == 0) { alert(); $(".burger-btn").removeClass("headerLogoScroll"); } } }); }); このコードになったのですが、topまで戻ると『このページの内容』というタブが出てきてOKを押すと色が戻っています。このタブはどうやれば消えるでしょうか。
gakki---

2022/05/08 08:21

alert のタグはいらなかったですね。 それを消せばいけました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問