※ ChatGPTを利用し、要約された質問です(原文:ページ先頭にスムーズに移動(アンカータグ不使用))
ページ先頭にスムーズに移動する方法
このQ&Aのポイント
アンカータグを使わずにページ先頭にスムーズに移動する方法を教えてください。
試したスクリプトではページごとにスクロール量が異なり、カチカチの動きになってしまいます。
アンカータグが使えない状況下で、スクロールを滑らかにする方法を教えてください。
上記の件、<a href="javascript:window.scroll(0,0)">Top</a>だと、カチカチの動きなので、これを滑らかにしたいと思い、教えて頂けると助かります。
【前提】
1.アンカータグ使用で、ページ先頭にスムーズに移動させる方法は、
http://smallwebmemo.blog113.fc2.com/blog-entry-245.html
のように、いくつも紹介サイトがありますが、ある理由で、アンカータグが使えません。
2.そこで、苦肉の策で、window.scrollTo(0,0)を使って、以下のようにしてみました。
【試したスクリプト】
■外部javascriptファイル名:scroll.js
var interval=100;//0.1秒後に、実行
var n=0;//下のfor文のiを代入する変数
function pageScroll(){
for(i=500;i>=0;i--){//決め打ちで、500pxlから開始して、0まで
window.scroll(0,i);
n=i;//500→0まで変化し、最後は、0となる
}
if(n>0){//0より大きいなら、setTimeout();を有効とする、n=0なら、無効
setTimeout("pagescroll()",interval);
}
}
■html側:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>テスト</title>
<script src="./scroll.js" language="javascript"></script>
</head>
<body topmargin="0" leftmargin="0">
<img src="0.jpg"/><br><br>
<a href="javascript:pageScroll()">Top</a>
</body>
</html>
【結果】
■動くことは動くのですが、ページごとにスクロール量が極端に異なるので、決め打ちの500からの開始ですと、ものすごく遅いページとそうでないページに極端に分かれます。仕方なく、上記のiの初期値を50として、開始位置を、topのすぐ近くにして、「カチカチではないかなぁ」という程度にしてます。→要は、ごまかしです。
【お教え頂きたいこと】
■アンカータグを使わず、window.scrollTo(0,0);かscrollBy();などを使って、同様な動きを付ける方法、もしくは、サイト名が、おわかりになる方は、教えて頂きたいと思います。
よろしくお願いします。
お礼
my--さん、 早い、ご教授ありがとうございました。 function pageTop() { O().scrollUp({}, 0); } これで、アンカータグ使用しなくても、ページトップにスムーズに移動してくれました! Flashが一番長く、その次にPHPで、javascriptは、サブウィンドウ開く位しか使ったことなかったので、今回は、大変、勉強になり、javascriptの奥深さに気付かされました。 おかげ様で、javascriptをちゃんと勉強するように、決意できました。ありがとうございました。