【jQuery】画面をスクロールでメニューの固定表示

投稿者: | 2020年10月16日
JQueryアイキャッチ画像

今回はスクロール固定の方法を2つご紹介したいと思います。

 

CSSのみでスクロール固定したい場合はこちら

それではいってみましょう!

 

➀style属性を設定

style属性を効かせスクロール固定する方法

解説

.sampleのTOP座標を取得します。(固定させるセレクターのTOP位置)

スクロールイベントを使用してスクロールしたら実行させる処理をします。

スクロールTOP位置をリアルタイムで取得します。

スクロールして.sampleのTOPよりスクロールTOP位置が大きくなったら固定させます。

cssのpositionをfixedで上と右1pxに固定します。

➃以外は、positionをrelativeにして通常位置に戻します。

1個目の方法はこれで終了です。

 

➁addclassとremoveclassでCSSを切り替え固定

2個目の方法です!

 

CSSを作成

jQueryで2つのcssのセレクターを切り替えるので作成します。

➀.abc(通常配置)

➁.in(固定)

.inの内容

position : 位置を固定(fixed)

topとleft  :  画面の表示位置で、上部0pxで左から50pxの位置に表示

z-index : 要素の重なり位置(数字が高いと上の階層になります)

ですので.inが固定する処理になります。

 

jQueryでCSSを切り替え

cssで.abcと.inを2つ作成したので、これをjQueryで切り替えます。

方法

offsetメソッド.abcのTOP位置(数値)を変数に格納します。

スクロールして.abcのTOP位置より、スクロールTOP位置が大きくなったらaddClass.in追加します。(固定)

それ以外はremoveClass.in削除します。(通常配置)

【サンプルコード】

 

スクロールさせると、ifにより2つのcssが切り替わるので、固定したり通常配置になったりします。

JQueryスクロール固定表示-min

 

全サンプルコード(addClassとremoveClass)

全てコピペで試せます(*^^)v

 

まとめ

今回はスクロールして固定表示させるやり方の基本を解説しました。

以上です(*゚▽゚)ノ