前提・実現したいこと
複数ページのサイトを作成中です。
インデックスページのハンバーガーメニューのページ内リンクを押した時、
・インデックスページの隠れていたタブを表示して
・そのタブまで移動する
という設定にしました。(javascript使用)
別ページ内にもまったく同じハンバーガーメニューを設置したいのですが、
別ページ内ハンバーガーメニューのaタグを押した際に
インデックス内の隠れていたタブを表示しつつそこに飛ばす方法がわかりません。
該当箇所に飛ばすことはできるのですが、タブが閉じっぱなしになってしまいます…
発生している問題・エラーメッセージ
インデックス内ハンバーガーメニューのページ内リンク01~03を押すと 隠れているタブを表示し、その箇所まで移動する設定にしている。 ACCESS内ハンバーガーメニューの01~03をクリックした際にも同じ動きをさせたいが ACCESSページの最上部に移動してしまう
該当のソースコード
html
1★ACCESS内ハンバーガーメニュー(ボタン省略) 2 3<nav class="gnav" id="gnav"> 4 <ul class="menu" id="menu"> 5 <li><a href="index.html">TOP</a></li> 6 <li><a href="index.html #about">ABOUT</a></li> 7 <li><a href="index.html #01">01</a></li> 8 <li><a href="index.html #02">02</a></li> 9 <li><a href="index.html #03">03</a></li> 10 <li><a href="#">ACCESS</a></li> 11 </ul> 12</nav> 13※01-03がインデックス内の閉じたタブです 14 15 16★INDEX内ハンバーガーメニュー(ボタン省略) 17<nav class="gnav" id="gnav"> 18 <ul class="menu" id="menu"> 19 <li><a href="#">TOP</a></li> 20 <li><a href="#about">ABOUT</a></li> 21 <li><a href="#link01" id="link01" class="secList">01</a></li> 22 <li><a href="#link02" id="link02" class="secList">02</a></li> 23 <li><a href="#link03" id="link03" class="secList">03</a></li> 24 <li><a href="access.html">ACCESS</a></li> 25 </ul> 26</nav> 27 28 29★閉じたタブ(INDEX内) 30<div class="link01 section"> 31 ~省略~ 32</div> 33 34<div class="link02 section"> 35 ~省略~ 36</div> 37 38<div class="link03 section"> 39 ~省略~ 40</div>
Javascript
1★INDEX内に指定 2 3//リンク---------------------------- 4$(function(){ 5 $('.section').hide(); 6 $('.secList').on('click',function(){ 7 // クリックした要素の ID と違うクラス名のセクションを非表示 8 $('.section').not($('.'+$(this).attr('id'))).hide(); 9 // クリックした要素の ID と同じクラスのセクションを表示 10 $('.'+$(this).attr('id')).slideDown('slow'); 11 }); 12}); 13 14//リンク(開いたボックスの中身を全面表示)-------------------- 15$(function(){ 16 $('.secList').on('click',function(){ 17 //スクロールのスピード 18 var speed = 500; 19 //リンク元を取得 20 var href= $(this).attr("href"); 21 //リンク先を取得 22 var target = $('.'+$(this).attr('id')); 23 //リンク先までの距離を取得 24 var position = target.offset().top; 25 //スムーススクロール 26 $("html, body").animate({scrollTop:position}, speed, "swing"); 27 return false; 28}); 29});
試したこと
ACCESS内ハンバーガーメニューを下記の通り設定しましたが、
同ページの最上部に移動するだけでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。