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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1652閲覧

Java scriptで、○○○px以下の場合に、ヘッダーが下からニュルッと消えるアニメーション

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/04/15 00:08

編集2020/04/15 00:48

前提・実現したいこと

ホームページのヘッダーを、
例えば、現在の位置が500px以上なら、
固定表示するプログラムをJava scriptで見つけました。

以下は実現できています。

500px以上なら、上からニュルッ(アニメーション)と固定表示され、
500px以下なら、スッと消える(アニメーションなし)ヘッダー。

実現したいのは、

500px以下なら、下からニュルッ(アニメーション)と消えるヘッダーです。

発生している問題

○○○px以下の場合に、ヘッダーが下からニュルッと消えるアニメーションが付けられない

該当のソースコード

Java

1$(function() { 2 var headNav = $("header"); 3 //scrollだけだと読み込み時困るのでloadも追加 4 $(window).on('load scroll', function () { 5 //現在の位置が500px以上かつ、クラスfixedが付与されていない時 6 if($(this).scrollTop() > 500 && headNav.hasClass('fixed') == false) { 7 //headerの高さ分上に設定 8 headNav.css({"top": '-62px'}); 9 //クラスfixedを付与 10 headNav.addClass('fixed'); 11 //位置を0に設定し、アニメーションのスピードを指定 12 headNav.animate({"top": 0},600); 13 } 14 //現在の位置が500px以下かつ、クラスfixedが付与されている時にfixedを外す 15 else if($(this).scrollTop() < 500 && headNav.hasClass('fixed') == true){ 16 headNav.removeClass('fixed'); 17 } 18 }); 19}); 20

HTML

1<header> 2 <nav class="g-nav"> 3 <ul class="g-nav-menu"> 4 <li>HOME</li> 5 <li>ABOUT</li> 6 <li>CONTCT</li> 7 </ul> 8 </nav> 9</header> 10 11<section id="sec01"> 12 <p>コンテンツ1</p> 13</section> 14 15 <section id="sec02"> 16 <p>コンテンツ2</p> 17</section> 18 19 <section id="sec03"> 20 <p>コンテンツ3</p> 21</section> 22

CSS

1header{ 2background: #155263; 3position: relative; 4width: 100%; 5} 6.g-nav{ 7width: 100%; 8z-index: 10; 9} 10.g-nav-menu{ 11text-align: center; 12} 13.g-nav-menu li{ 14color: #fff; 15padding: 0 30px; 16list-style-type: none; 17display: inline-block; 18line-height: 80px; 19} 20.fixed{ 21position: fixed; 22top: 0; 23left: 0; 24} 25.fixed .g-nav-menu li{ 26line-height: 40px; 27} 28section{ 29display: table; 30width: 100%; 31height: 800px; 32text-align: center; 33} 34section p{ 35display: table-cell; 36vertical-align: middle; 37color: #fff; 38} 39#sec01{ 40background: #FF6F3C; 41} 42#sec02{ 43background: #FF9A3C; 44} 45#sec03{ 46background: #FFC93C; 47} 48

試したこと

特になし

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

特になし

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

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

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

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

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

m.ts10806

2020/04/15 00:09

提示コードは「300未満」になってるようですが
退会済みユーザー

退会済みユーザー

2020/04/15 00:12

ご指摘ありがとうございます。 コードを修正しました。
m.ts10806

2020/04/15 00:22

あとはhtml、cssもご提示ください。JavaScriptだけでは再現確認できませんので
退会済みユーザー

退会済みユーザー

2020/04/15 01:25

ご指摘ありがとうございます。cssとhtmlを記載いたしました。何卒よろしくお願い致します。
guest

回答1

0

ベストアンサー

細かいところは調整していませんが、こんな感じでしょうか。

js

1var f = true; 2 3//... 4 5//現在の位置が500px以下かつ、クラスfixedが付与されている時にfixedを外す 6 else if($(this).scrollTop() < 500 && headNav.hasClass('fixed') && f ){ 7 f = false; 8 headNav.animate({"top": '-62px'},600).promise().then(function(){ 9 headNav.removeClass('fixed'); 10 f = true; 11 }); 12 13 }

投稿2020/10/13 06:28

Lhankor_Mhy

総合スコア36115

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問