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

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

新規登録して質問してみよう
ただいま回答率
85.50%
スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

jQuery

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

CSS

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

Q&A

解決済

1回答

3684閲覧

スクロール時のサイドナビの固定とその調整

kare-mazesoba

総合スコア12

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

jQuery

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

CSS

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

0グッド

0クリップ

投稿2017/07/08 05:49

編集2017/07/21 09:54

###前提・実現したいこと
サイドナビをスクロールに合わせ固定させフッターもしくは他の要素にサイドナビが触れたときに固定を解除させたものを実装させたいです。
現在スクロールに合わせて固定化するところまでできたのですが、他の要素があるとサイドナビがその要素を突き抜けてしまう症状をなかなか改善できなく困っています。

みなさまよろしくお願いします。

###該当のソースコード

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> jQuery(function($) { var nav = $('.side'), offset = nav.offset(); $(window).scroll(function () { if($(window).scrollTop() > offset.top) { nav.addClass('fix_nav'); } else { nav.removeClass('fix_nav'); } }); }); </script> <style> *{padding:0; margin:0; } .fix_nav { position: fixed; z-index: 10; } .side{ width:30%; height:150px; float:left; background-color:#ccc; } .wrap{ overflow:hidden; } .main{ width:70%; height:400px; float:right; background-color:#ccf; } .footer{ width:100%; height:1000px; background-color:#cac; } </style> <div class="wrap"> <div id="fixedBox" class="side"> side </div> <div class="main"> main </div> </div> <div class="footer"> footer </div>

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

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

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

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

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

kei344

2017/07/08 05:55

「要素を突き抜けてしまう症状」とは具体的にどういう状態でしょうか。
Lhankor_Mhy

2017/07/08 06:28

『他の要素』とは具体的には何ですか? position:fixedならば、基本的に他の要素の上に乗るだろうと思うのですが。
kare-mazesoba

2017/07/08 06:52

kei344さん、メッセージありがとうございます。フッターに高さがあるためスクロールするとそのフッターを突き抜けて固定し続けてしまうということです。
kei344

2017/07/08 06:53

「突き抜けて」がわかりません。スクリーンショットなどの提示をお願いします。
kare-mazesoba

2017/07/08 06:54

Lhankor_Mhyさん、メッセージありがとうございます。Lhankor_Mhyさんの仰る通りでスクロールすると他のdiv要素の上に乗ってしまう状態です。
Lhankor_Mhy

2017/07/08 06:56

フローティングメニューは他の要素の上に乗るのが当たり前だと思うのですが…… どういったモノを作りたいのか具体的に書いていただけますか?
Lhankor_Mhy

2017/07/08 07:01

あ、もしかしてこの→サイドバーみたいなものですか? 右コラムにはフローティングメニュー以外の要素がないって感じの?
kare-mazesoba

2017/07/08 07:14

Lhankor_Mhyさん 内容の更新をしました。画像を見てもらうとイメージが湧くと思うのですが、現状一枚目で2枚目の状態を再現したいと思っています。htmlコードではサイドナビ分の内容しか書いてなかったです。すいません。。。
kare-mazesoba

2017/07/08 07:15

kei344さん遅くなってすいません。画像を載せさせていただきました。
naomi3

2017/07/08 07:46

症状を再現できません。再現できるように、HTMLの他の部分も載せてください。
Lhankor_Mhy

2017/07/08 08:58

質問が更新されていないように見えます。teratailの編集ページのデザインはちょっとおかしいので、更新されていないことに気がつかないことがあります。お気をつけて。
kare-mazesoba

2017/07/16 10:36

naomi3さん 症状の再現ができるようにhtmlの部分を修正しました。
kare-mazesoba

2017/07/16 10:37

Lhankor_Mhyさん 更新がうまくいっていなかったようでした、丁寧にありがとうございました。
naomi3

2017/07/16 12:32

突き抜けませんが。サイドバーがぷるぷる震えますが。
kare-mazesoba

2017/07/21 09:55

naomi3さん メッセージありがとうございます。これで症状が再現できれば良いのですが・・・
guest

回答1

0

ベストアンサー

投稿2017/07/21 10:54

Lhankor_Mhy

総合スコア35860

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

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

kare-mazesoba

2017/07/22 07:00

ありがとうございます。 わかりやすい記事だったので、すごく助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問