下記サイトを参考にさせていただき、目的のidの所にスクロールして移動できるようにしました。
しかし、移動後スクロールして再読込をすると元のidの所にスクロールしてしまいます。
スクロールして移動を1回のみにする方法は有りますでしょうか。
よろしくお願いいたします。
https://zxcvbnmnbvcxz.com/smoothscrol/
No.3
- 回答日時:
参考にしたサイトで作ると、DEMOでid="white"をクリックしてwhiteのところへスクロール。
このページを再ロードすると、先頭には行かずに、whiteへスクロールした状態になってしまう。
これを、再読込したら、先頭からの表示にしたい。
と言う事ですか?
そうで有れば、通常のページ内リンクにして、ジャンプをスムーズにすれば良いと思います。
jQueryの読み込みはやってると思うから、そこは省略。
<body>
<!-- スムーズスクロール部分の記述 -->
<script>
$(function(){
// #で始まるアンカーをクリックした場合に処理
$('a[href^=#]').click(function() {
// スクロールの速度:自由に変更して下さい。
var speed = 1000; // ミリ秒
// アンカーの値取得
var href= $(this).attr("href");
// 移動先を取得
var target = $(href == "#" || href == "" ? 'html' : href);
// 移動先を数値で取得
var position = target.offset().top;
// スムーススクロール
$('body,html').animate({scrollTop:position}, speed, 'swing');
return false;
});
});
</script>
<!-- 通常のページ内リンク -->
<a href="#1">no1</a><br />
<a href="#2">no2</a><br />
<a href="#3">no3</a><br />
・
・
・
t_fumiaki様
いつもいつも回答をいただきありがとうございます。
>// スムーススクロール
の所にヒントを得て問題を解決できました。
これからもよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんにちは
>再読込をすると元のidの所にスクロールしてしまいます
再読み込みということは、ゼロから読み込んで新しく表示するのと同じことですので、onloadなどで設定しているスクリプトも当然ながら再実行されます。
ご質問は、これを防止したいという意味のことと思います。
一つの方法として、スクロールの実行情報(=済みか否か)を、ブラウザの表示期間のみの設定のcookieやwebStrageに記録する仕組みにしておいて、ロード時にこの情報を見て判断するようにするといったものが考えられます。
https://developer.mozilla.org/ja/docs/Web/API/Do …
https://developer.mozilla.org/ja/docs/Web/API/Wi …
以下はsessionStorageを利用した例です。
(ブラウザを閉じると記録も消えます)
例では、alert表示だけで実際のスクロールはしていませんが、「これからスクロールします」の表示の代わりにスクロール処理を行い、「スクロール済です」表示の際は何もしいようにすることで、ご質問の内容が実現できるのではないでしょうか?
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title></head>
<body>
<p>テストサンプル
<script type="text/javascript">
(function(){
var st = sessionStorage;
if(!st) return alert("Storage未対応ブラウザです");
if(!st.getItem("scroll")){
st.setItem("scroll", 1);
alert("これからスクロールします");
} else {
alert("スクロール済です");
}
})();
</script>
</body>
</html>
fujillin様
いつもいつも回答をいただきありがとうございます。
>「これからスクロールします」の表示の代わりにスクロール処理を行い
の所に苦労しましたが、No.3の方の回答を参考にして無事思い通りの動作が実現できました。
これからもよろしくお願いいたします。
No.1
- 回答日時:
goold-man様
回答ありがとうございます。
ご紹介いただいたサイトを参考に精進していきます。
これからもよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelでマウスを使って横スクロールしたい 7 2022/06/07 17:56
- その他(IT・Webサービス) このサイトのスクロール逆じゃないですか? 1 2022/10/05 20:48
- Chrome(クローム) chromeの設定でホイールを回した際の移動量とホイールクリックした際の自動スクロール 2 2022/12/19 17:13
- 教えて!goo PCの「回答コーナー」から回答する時に、回答を書いて「回答を確認する」を押すと、 1 2022/07/28 22:02
- マウス・キーボード Macのスクロールについて 2 2022/06/28 11:29
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- YouTube チャンネルのアーカイブを観る際の問題点 1 2022/07/23 04:52
- Windows 95・98 Windows11の設定画面がスクロールできません。 2 2023/07/26 05:16
- マウス・キーボード マウスのないパソコン 9 2022/03/30 10:53
- YouTube YouTube動画スクロール対策 あるユーチューバーの動画を最初の動画から見ているのですが1番下まで 1 2022/10/02 15:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
bodyにidをつける理由は何ですか?
-
(Javascript)印刷するファイル...
-
【HTML】フレームの中央寄せに...
-
iframeのsrcにページ内リンク(...
-
テキストボックス内にハイパー...
-
テキストをクリックすると答え...
-
googleマイマップとのリンクを...
-
htmlで任意の行の文字位置を右...
-
divやiframeの読み込み時バグ @...
-
bodyにwidth:100%をつける理由は?
-
<NOSCRIPT>
-
wordpressでアコーディオンメニ...
-
スクロールバーのスクロール量...
-
<a href="#" …>の意味を教えて...
-
別ファイルのfunctionの読み込み方
-
複数のJavascriptを1つのscrip...
-
base64encodeでの文字化けについて
-
入力したテキストボックスのデ...
-
ウインドウの後ろに隠れている...
-
JavaScriptでiframeの内容を「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bodyにidをつける理由は何ですか?
-
テキストボックス内にハイパー...
-
(Javascript)印刷するファイル...
-
ハイパーリンクに下線を表示す...
-
別ページのページ内リンクでの...
-
横スクロールを右から左へ・・・
-
bodyにwidth:100%をつける理由は?
-
ボタンが押されたらWebページの...
-
テーブル内の数値を自動で計算...
-
"mailtoでメールの【氏名】【性...
-
ページの読み込みが完了してか...
-
テキストをクリックすると答え...
-
インラインフレーム内のスクロ...
-
<body id=~>の用途は?
-
複数のiframeの読み込みについて
-
Chromeがiframe内の「#~」に釣...
-
-css- ページオープン時やリロ...
-
ページによって表示位置がずれ...
-
<HR>タグでつくる四角形につい...
-
リンクをクリックすると文字が...
おすすめ情報