html
1<nav> 2 <ul> 3 <li><a href="/">TOP</a></li> 4 <li><a href="/#about">ABOUT</a></li> 5 <li><a href="/menu/">MENU</a></li> 6 <li><a href="/menu/#menu2">MENU2</a></li> 7 </ul> 8</nav>
<nav>はハンバーガーメニューで全ページに共通して設置しています。(cssは割愛させていただきます) jqueryはサイトに記載があったものを拝借しましたが、ページが複数あるとページ内リンクのスムーススクロールがうまくいきません。 「/#about」を「#about」に変えれば(スラッシュなし)動くのですが、そうするとMENUページにいたときにクリックしたら そのページ内の#aboutを探してしまうので動きません…。jquery
1$('a[href^="#"]').on('click', function() { 2 var speed = 400, 3 href= $(this).attr("href"), 4 target = $(href == "#" || href == "" ? 'html' : href), 5 position = target.offset().top; 6 $('body,html').animate({scrollTop:position}, speed, 'swing'); 7 return false; 8});
今回のように、複数ページある場合でもページ内リンクをスムーススクロールでうまく動かすには
どのように修正をすれば宜しいでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/10 06:44
2020/12/10 08:41