減速しながらスクロールする

<html>
<head>
<title>減速しながらスクロールする</title>
<script language="JavaScript">
<!--

function slowdownScroll() {

if(navigator.appName == "Microsoft Internet Explorer" && document.compatMode == "CSS1Compat") {
sctop = document.body.parentNode.scrollTop;
}
else if(window.pageYOffset){
sctop = window.pageYOffset;
} else {
sctop = document.body.scrollTop;
}

if(sctop){
scup = Math.ceil(sctop*.2);
scrollBy(0,-scup);
if (sctop-scup) setTimeout("slowdownScroll()",20);
}
}
//-->
</script>

</head>

<body>
<br>
 ・
 ・
 ・
 ・
<a href="JavaScript:scrollTo(0,0)" onclick="slowdownScroll();return false;">▲ページのトップへ戻る</a>

</body>
</html>




※ページ下部からページの最上部に戻るとき、減速しながら、ページの最上部でぴったりと止まるようにスクロールします。

スクロールの最上部位置を取得します。
document に scrollTop というプロパティがありますが、NN4 では無効なので、
window のプロパティ pageYOffset を使用します。これはスクロールされているときに、
画面に表示されているページの縦位置を返します。

if(sctop){
scup = Math.ceil(sctop*.2);
scrollBy(0,-scup);
if (sctop-scup) setTimeout("slowdownScroll()",20);
}

スクロールの位置が0(ページ最上部)でない場合、スクロールさせる分(scup)を取得します。
スクロールの最上部位置(=スクロールする残り分)×0.2 を端数を切り上げ、ページ上部にその分
スクロールさせます。
ページの最上部に到達するまで、20 ミリ秒後とにこの関数を再実行します。

ホームページ作成ガイド

© INFI

ホーム | サイトについて | サイトマップ

ホームページ作成ガイド