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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

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

Q&A

2回答

547閲覧

スクロールによって出てきたり消えたりするロゴを実装したい

kylojin

総合スコア0

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

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

1グッド

1クリップ

投稿2023/03/17 01:18

編集2023/03/17 01:28

実現したいこと

・トップ画面からスクロールすると左上にフワッとロゴが出てきて、トップ画面に戻ると消えるようにしたい。

前提

トップ画面からスクロールすると出てくるところまではうまくいったのですが、そこからいくらスクロールしても消えなくなってしまいます。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

HTML

1<header class="header"> 2 <img src="./images/spica_logo.png" id="header-logo"> 3 <div class="header-area"> 4 <ul class="header-list"> 5 <li><a href="#">Menu</a></li> 6 <li><a href="#">ツアー</a></li> 7 <li><a href="#">星だより</a></li> 8 <li><a href="#">Access</a></li> 9 <li><a href="#">Vision</a></li> 10 </ul> 11 <div class="reservation"> 12 <a href="#">予約をする</a> 13 </div> 14 </div> 15 </header>

JS

1$(function () { 2 3 const headNav = $('#header-logo'); 4 5 $(window).scroll(function () { 6 7 if ($(this).scrollTop() > 100) { 8 9 // headNav.css("opacity", "1"); 10 11 headNav.animate({ opacity: 1 }, 1000, 'linear'); 12 13 } 14 15 else if ($(this).scrollTop() < 100) { 16 17 // headNav.css("opacity", "0"); 18 19 headNav.animate({ opacity: 0 }, 1000, 'linear'); 20 } 21 22 }); 23 24 }); 25

試したこと

//でメモになっている部分にするとうまくいくのですが、フワッとを実現できないので却下しました。なぜメモの部分はうまくいって、animateの方はうまくいかないのでしょうか。。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

shinoharat👍を押しています

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

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

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

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

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

guest

回答2

0

animateの方がうまく行かない理由は、スクロールするたびに実行するのでアニメーションがリセットされているからと推測されます。

目的の動作はコメントアウトしてる方の動作と、cssのtransitionプロパティを使うことで楽に実装可能です。

css

1#header-logo { 2 transition: opacity 1s; 3}

投稿2023/03/17 04:12

ziopuzzle

総合スコア90

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

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

0

スクロールすると、アニメーションが最初からやり直されます。これがおそらく、animate が機能しない理由です。

コメントアウトされたアクションと CSS 遷移プロパティを使用すると、必要なアクションを簡単に実行できます。 monkey mart

投稿2023/03/17 06:44

編集2023/03/17 06:45
rafaelroob

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問