以前記事にした、「ページトップ」へ戻るボタンとナビゲーションバーのメニュー項目に「サイドバー位置へジャンプ」を設置(モバイル)の改良版です。
ナビゲーションバーのメニューは指が太い人は困ったと思いますが、これで解決です。
今回の方法に変更する方は、前回のナビゲーションバーのメニュー項目は削除してください。
参考:
モバイル等の小さい画面だと「サイドバー」が「投稿一覧」や「個別記事」の下に移動してしまうため、 モバイルのときだけディスプレイ下部の一番右にハンバーガーマークが出現します。
それを押すと「サイドバー」位置にアニメーション移動します。
ただし、このボタンはモバイル(width: 768px以下)でのみ表示されます。
その左隣には「ページトップ」へ戻るボタン(下方へのスクロールが100に達したら表示される)もあります。
これをタップするとページトップにもどります。
設定方法
ダッシュボード→レイアウト→ガジェットの追加→「HTML/javascript」「+」で追加ウィンドウが開くので、
ガジェットの配置場所はサイドバー等に移動(ドラッグ)する。
前回、「ページトップ」へ戻るボタンのみを設置した方は下記コードに変更するだけです。
<p id="page-top"><a href="#">TOP</a></p> <p id="page-sp"><a href="#サイドバー">≡</a></p> <style type="text/css"> /* PageTop, page-sp ボタン基本設定 */ #page-top, #page-sp {position: fixed; bottom: 15px; z-index: 10; font-size: 85%;} #page-top {right: 60px;} #page-sp {right: 15px;} #page-top a{display: inline-block;} #page-sp a{display: none;} #page-top a, #page-sp a {text-decoration: none; background-color: #efebe5; opacity: 0.9; color: #808080; height: 40px; width: 40px; line-height: 40px; border-radius: 50%; text-align: center; vertical-align: middle; overflow: hidden; transition: .4s;} #page-top a:hover, #page-sp a:hover {text-decoration: none; background-color: #808080; color: #fffbe5;} @media screen and (min-width: 0) and (max-device-width: 768px) { #page-top, #page-sp {bottom: 10px;} #page-sp a{display: inline-block;} } /* サイドバーに空白が出てしまうので消す */ #HTML2 > div.widget-content { background-color:#f6f5f5;} </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var topBtn = $('#page-top'); topBtn.hide(); //スクロールが100に達したらボタン表示 $(window).scroll(function () { if ($(this).scrollTop() > 100) { topBtn.fadeIn(); } else { topBtn.fadeOut(); } }); $('a[href^="#"]').click(function(){ // "#" で始まる要素を選択 var speed = 500; var href = $(this).attr("href"); if(href == "#" || href == ""){ var target = $("html"); // そのページ var position = target.offset().top; }else{ var target = $(href); // href要素 var position = target.offset().top - 10; // 10 は飛び先の位置調整 } $("body, html").animate({scrollTop:position}, speed, "swing"); return false; }); }); </script>
jQueryをすでに登録している方は中ほどの jQuery v1.9.1 の登録行は不用です。
このコードはフッター等へのジャンプに簡単に応用できますので非常に便利です。
ジャンプ先のIDはそのまま使えますし、
最下部の場合は、分岐して var position = $(document).height(); にすれば OK です。
追記:2020.08.10
z-index はライトボックスとのからみで 110 から 10 に変更しました。
0 件のコメント:
コメントを投稿