Barba.jsを使ったwebページを作成中なのですが、jQueryを用いたヘッダーメニューからのスムーズスクロールが上手く機能しません。
ヘッダーメニューは本来、
html
1<header> 2 <ul> 3 <li><a href="#section1">section1</a></li> 4 <li><a href="#section2">section2</a></li> 5 <li><a href="#section3">section3</a></li> 6 </ul> 7</header>
のように記述したいのですが、
Barba.jsによる遷移でヘッダー以外のコンテナを差し替えた場合、ヘッダーはそのままなのでヘッダーメニューから前のHTMLに戻ることができなくなってしまいます。よって現在、ヘッダーメニューを
HTML
1<header> 2 <ul> 3 <li><a href="index.html#section1">section1</a></li> 4 <li><a href="index.html#section2">section2</a></li> 5 <li><a href="index.html#section3">section3</a></li> 6 </ul> 7</header>
のように書いてそれを解決しています。
ただ、これだとスムーズスクロールが機能しなくなってしまいます。
上手く二つを共存させたいのですが、方法が見つかりません。
解決方法があれば教えていただきたいです。
ちなみにjQueryでのスムーズスクロールは以下のように記述しています。
js
1$(function(){ 2 $('a[href^=#]').click(function(){ 3 var adjust = 0; 4 var speed = 400; 5 var href= $(this).attr("href"); 6 var target = $(href == "#" || href == "" ? 'html' : href); 7 var position = target.offset().top + adjust; 8 $('body,html').animate({scrollTop:position}, speed, 'swing'); 9 return false; 10 }); 11 12 });
長く拙い文章になってしまいましたが、よろしくお願いします。
2019/02/03 追記
ページの構成ですが、トップページに3つのセクションがあり、ヘッダーメニューをクリックして任意のセクションにページ内移動(この部分にスムーススクロールを使いたい)、
セクション内の画像をクリックで別ページに移動(この部分がPjax遷移)という構成になっています。
回答1件
あなたの回答
tips
プレビュー