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

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

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

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

HTML

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

CSS

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

Q&A

解決済

1回答

4492閲覧

Bootstrap4のnavbarのsticky-top使用時、上部到達時点で特定要素を表示させたい

misonya

総合スコア25

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/06/14 05:03

編集2018/06/14 05:14

Bootstrap4から新規実装されたsticky-topが便利だなと思ったのですが、ナビゲーションバーが固定されたときにナビゲーションバーの要素内に置いてあるものを出すことは可能でしょうか?

「到達時点で表示」を固定されたときに表示させて、到達していないときは非表示に出来たら理想通りなのですが…

下記コードは記述しているものになります。表示エラーが起きているとかではないです。
この<span class="navbar-text">~~</span>を常時表示ではなく、上部到達時点で表示させたいのです。
jsなどに慣れていなくてどうすればいいのか困っています。

html

1<nav class="navbar navbar-expand-lg navbar-light bg-light"> 2 <a class="navbar-brand" href="#">テスト</a> 3 <button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="ナビゲーションの切替"> 4 <span class="navbar-toggler-icon"></span> 5 </button> 6 <div class="collapse navbar-collapse" id="navbarText"> 7 <ul class="navbar-nav mr-auto"> 8 <li class="nav-item active"> 9 <a class="nav-link" href="#">ホーム</a> 10 </li> 11 <li class="nav-item"> 12 <a class="nav-link" href="#">リンク1</a> 13 </li> 14 <li class="nav-item"> 15 <a class="nav-link" href="#">リンク2</a> 16 </li> 17 </ul> 18 <span class="navbar-text"> 19 到達時点で表示 20 </span> 21 </div> 22</nav>

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

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

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

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

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

m.ts10806

2018/06/14 05:05

提示のコードで起きている問題は何でしょうか
misonya

2018/06/14 05:16

コードで問題は起きていないです。この部分を表示させたいというのを書いたつもりだったのですが、記載不足でした。質問内容を修正しました。申し訳ありません。
guest

回答1

0

自己解決

当初のコードとは大きく異なりますが、navbarにはメニューだけ置いて、ロゴ等をposition:fixed;で設置した後にsticky発動と同時にtransitionでロゴ等の大きさを変えることで出来ました。
CSSは省略します。

html

1<div id="HeaderSlider" class="container-fluid text-center p-0"> 2 <div class="row align-items-center mr-0"> 3 <h1 class="col-auto mr-auto px-0 mb-4"><a href="index.html"><img class="img-fluid" src="img/common/logo.png"></a></h1> 4 <ul id="RightTop" class="col-auto d-none d-lg-block list-unstyled list-inline p-0"> 5 <li class="list-inline-item"><a href="inquiry.html"><img src="img/common/mail.png"></a></li> 6 <li class="list-inline-item"><a href="https://www.rakuten.co.jp/toyo-f/" target="_blank"><img src="img/common/rakuten.png"></a></li> 7 </ul> 8 </div> 9 <div class="slider"> 10 <!-- ここの高さが700px --> 11 </div> 12</div> 13<nav id="NavFixed" class="navbar sticky-top navbar-expand-lg navbar-dark bg-dark"> 14 <a class="navbar-brand d-inline d-lg-none pl-1" href="index.html"> 15 <img src="img/common/logo.png" width="230"> 16 </a> 17 <button id="navbtn" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#Navber" aria-controls="Navber" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> 18 <div class="collapse navbar-collapse" id="Navber"> 19 <ul class="navbar-nav justify-content-center text-center mt-4 mt-ms-0 m-lg-auto"> 20 <li class="nav-item"><a class="nav-link" href="#">HOME</a></li> 21 <li class="nav-item"><a class="nav-link" href="#">リンク1</a></li> 22 <li class="nav-item"><a class="nav-link" href="#">リンク2</a></li> 23 </ul> 24 </div> 25</nav>

スクリプトはわからないなりに書いたのでもっといい書き方があるかもです。

js

1$(window).on('load resize', function () { // 読み込み時、リサイズ時にスクリプトを実行 2 var w = $(window).width(); // 画面幅の値を取得 3 var x = 768; //ブレークポイントをタブレット端末に指定 4 if (w <= x) { 5 $('#NavFixed').removeClass("sticky-top").addClass("fixed-top"); // タブレット以下の場合ナビは固定 6 } else { 7 $('#NavFixed').removeClass("fixed-top").addClass("sticky-top"); // PCの場合ナビは固定 8 $(function () { 9 var $win = $(window), 10 $header = $('h1'), 11 animationClass = 'col-3'; // h1にcol-3のクラスの追加を指定 12 $win.on('load scroll', function () { 13 var value = $(this).scrollTop(); // ページ上部からのスクロール値を計測 14 if (value > 623) { // 623pxを過ぎたときにcol-3を追加。623px未満の場合クラスを削除 15 $header.addClass(animationClass); 16 } else { 17 $header.removeClass(animationClass); 18 } 19 }); 20 }); 21 } 22}); 23

投稿2018/06/29 21:37

misonya

総合スコア25

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問