ページ内リンクのアンカーリンクが、URLの最後に付かないようにしたいのですが、どうしても出来ません。
スムーススクロールも入っているのですが、そちらは出来ているので、スクリプトは読んでいると思うのですが、何が間違っているのでしょうか?htmlは少し省略しますが、下記のようなソースです。
### 該当のソースコード $(function(){ $('a[href^=#]').click(function() { var position = 0; var href= $(this).attr("href"); if(href.indexOf('#') >= 0 && $(href).size() && href != '' && href != '#'){ var target = $(href); try{ position = target.offset().top; }catch(e){ } } var scrollY = document.documentElement.scrollTop || document.body.scrollTop; var speed = Math.ceil(Math.pow(Math.abs((position - scrollY)), 0.7)); if(speed){ $('body, html').animate({scrollTop:position}, speed, 'swing'); } return false; }); });
ソースコード(HTML)
<ul> <li><a href="#price">料金</a></li> <li><a href="#news">ニュース</a></li> <li><a href="#access">アクセス</a></li> </ul> <section id="price">~</section> <section id="news">~</section> <section id="access">~</section>
### 試したこと ・ネットで別のソースを探して置き換えてもどれもダメでした。 ・jquery1.11.1と3.5.1を入れてみましたが、どちらでも関係ないようです。 ・外部ファイルでも、htmlに記載してみてもダメです。 デバッグのやり方がわからないので、他のスクリプトを全部外してみたり、bodyやfooterの中に書いてみたり、ネット上のソースと見比べたりしてみましたが、どうにもわかりません。メニューが増えた時のことなども考えて、できればidを特に指定せず、アンカーリンクがあれば対応できる方がいいのですが…。 ※追記 特に変更していないのですが、上記のソースで、デスクトップで、何故かできました。 が、別ページでも同じヘッダーを使うので、ページのパスとアンカーリンクで下記のようにすると、出来なくなってしまいました…。。。 ```ここに言語を入力 <a href="ホームページのURL/index.html#price">
別ページからでも、アンカーリンクが残らないようにする方法がわかりません、、、
よろしくお願いいたします。
あなたの回答
tips
プレビュー