全くの初心者ですが、以下内容について質問させて頂ければと思います。
現時点取り組んでいること
サンプルHPのように、日本地図をクリック(もしくはタップ)すると、ページ内の該当場所に移動するページを作成しております。
日本地図は、このプラグインを使用し作成しております。
発生した問題
ページ内リンク自体は、うまくいきました。
クリックすると、指定した箇所に無事飛びます。
ただし、これはスマホに顕著なのですが、タップして移動した先にリンクがあると、そのままそのリンクを開いてしまうという不具合が発生します。
(意味分かるでしょうか・・・)
解決策として、大きく以下2つを考えております。
解決案1 スムーススクロールを設定する
第一候補として、スムーススクロールの実装を考えております。
(個人的には、できるだけこの動きを実装させたいと考えております。スクロールしたことが分かりやすいですし)
ネット検索して以下コードを記載してみたものの、私のHPではaタグではなくプラグインを使用しているため(案の定)上手くいきませんでした。
js
1$(function(){ 2 $('a[href^="#"]').click(function(){ 3 var speed = 500; 4 var href= $(this).attr("href"); 5 var target = $(href == "#" || href == "" ? 'html' : href); 6 var position = target.offset().top; 7 $("html, body").animate({scrollTop:position}, speed, "swing"); 8 return false; 9 }); 10});
その次に
css
1html{scroll-behavior: smooth}
と記述したところ、Chromeでは上手く動作しましたがその他ブラウザ(iPhone safari等)では変化なしでした。
(ブラウザがサポートしていないからでしょうね)
解決案2 スクロール後の動作を追加する
移動後すぐにリンクが開かないよう、スクロール後にフェードイン等の動作をつけることも解決策かと思います。
一通り検索して調べてみましたが、フェードインの場合CSSのopacityを利用して動作させるようなので、リンクは開けてしまうのではないかと思います。
まだ実装していないので憶測で上記書いておりますが、この観点でもアドバイス等ございましたら、ご教示頂けないでしょうか。
最後に
解決案1・解決案2どちらでも構いませんので、対処法をご教示頂けますとありがたく存じます。
(それ以外の解決策もございましたら、是非教えて頂けるとありがたいです)
何卒、宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/05 05:26
2018/04/05 05:48
2018/04/05 06:29