前提・実現したいこと
スマホでのアンカーリンク遷移。
WordPressで制作したページから、別階層へ設置しているindex.htmlページ内のアンカーリンク先へ遷移したいのですが、PCと同様にスマホでも指定のアンカー先へ遷移させたい。
発生している問題・エラーメッセージ
PCでは正常に動作するのですが、スマホでアンカーリンク先へうまく遷移せず、リンク先ページのトップが表示されてしまいます。
該当のソースコード
■リンク元のphpソースコード
<div class="lp-link2">
<div class="link-btn btn3"><a href="//sample.com/zzz/index.html#page18b" title="詳しくはこちら">詳しくはこちら></a></div>
</div>
■リンク先のhtmlソースコード
<article>
<section class="panel page18a" data-section-name="page18a" id="full">
<div>........</div>
</section>
<section class="panel page18b" data-section-name="page18b" id="full">
<div>........</div>
</section>
<article>
試したこと
以下の記述をリンク先のページへ追記してみましたが、変化ありませんでした。。
<!-- ロード終了後に、setTimeout()でロードからの時間を僅かにずらす --><script type="text/javascript"> $(window).load(function(){ var lochref = window.location.href; if ( lochref.indexOf('#') > -1 ) { var anchor = lochref.slice( lochref.indexOf('#') ); window.setTimeout(function(){ $('body, html').animate({ scrollTop: $(anchor).offset().top }, 1); }, 1); } }); </script>
補足情報(FW/ツールのバージョンなど)
スクロール関係で読み込まれているscriptが以下です。
<script type="text/javascript" src="../js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="../js/jquery.scrollify.min.js"></script> <script> if (window.matchMedia('(min-width:481px)').matches) $(function () { $.scrollify({ section: "section", }); }); </script> <script type="text/javascript"> if (window.matchMedia('(min-width:481px)').matches) $(function () { $(".panel").css({ "height": $(window).height() }); $.scrollify({ section: ".panel" }); }); </script>
その他に、ユーザーエージェントでデバイスを振り分けたり、スマートフォンのa要素のhoverの動作を改善するなどのjavascriptの記述がありますが、自分で制作したサイトでなく、JavaScriptやjQueryの知識が浅いため読み解けず、質問させていただきました。わかりやすく教えていただけると大変ありがたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/13 01:55