前提
Javascriptでパソコンの場合だけ、ナビゲーションを途中から固定したい
実現したいこと
グローバルナビがコンテンツの途中にあります。
PCのときだけ、スクロールして一番上部に来たときに固定したいです。
スマホでは何もしません。
「途中から固定」のサンプルはいくらでもあるのですが。
PC、スマホで切り替えたい場合の書き方が分かりません。
切り替えはユーザーエージェントではなく、ブラウザサイズを利用します。
リロードしたとき、リサイズしたときにウィンサイズを判定して、
パソコンの時だけ、スクリプトを動かす、ということができれば
いいと思うのですが、条件分岐を書いても、
リサイズでスマホサイズにするとスクリプトが動いてしまいます。
発生している問題・エラーメッセージ
ウィンサイズをリサイズすると、スマホでもスクリプトが動く。
該当のソースコード
このサイトの「ナビゲーションが途中から固定」のところを参考に、分岐を追加しています。
https://www.nxworld.net/stikcy-or-change-header-and-navigation-when-scrolling-using-jquery.html
(function($) { var $main = $('.main'); var $nav = $('.global-nav'); var fixedClass = 'fixed'; $(window).on('load resize', function(){ var _width = $(window).width(); if(_width >= 768){ var navHeight = $nav.outerHeight(); var navPos = $nav.offset().top; $(window).on('scroll', function() { var value = $(this).scrollTop(); if ( value > navPos ) { $nav.addClass(fixedClass); $main.css('margin-top', navHeight); } else { $nav.removeClass(fixedClass); $main.css('margin-top', '0'); } }); } else { $nav.removeClass(fixedClass); $main.css('margin-top', '0'); } }); })(jQuery);
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/08/10 06:04
2022/08/10 06:05
退会済みユーザー
2022/08/10 06:08
退会済みユーザー
2022/08/10 06:10
退会済みユーザー
2022/08/10 06:11
2022/08/10 06:13
退会済みユーザー
2022/08/10 06:15
2022/08/10 06:15
退会済みユーザー
2022/08/10 06:16
2022/08/10 06:21 編集
2022/08/10 06:30
2022/08/10 06:38
2022/08/10 06:45