人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptの質問。

下記のソースでdown.gifにマウスオーバーするとdiv内がスクロールしていきます。
しかし、スクロールが終わってもマウスオーバーしているとずっとyの値が増えてしまいます。
スクロールが終わった時点でyの値も止めたいのですがどうしたらよいでしょうか?
div内の高さが出せればいいような気もするのですが、方法がわかりません。これもあわせてお願いします。

<html>
<head>
<script language="JavaScript">
var timeout;
var y = 0;
var step = 2;
function down(){

if (y < 0){
y=0;
}
document.getElementById("hoge").scrollTop = y;
window.status = y; //テスト用

y = y + step;

timeout=setTimeout("down()",20);
}

function up(){
if (y >=0 ){
document.getElementById("hoge").scrollTop = y;
window.status = y; //テスト用
y = y - step;
}
timeout=setTimeout("up()",20);
}

function stop1(){
clearTimeout(timeout);
}


</script>
</head>
<body>
<img src="up.gif" onMouseOver="up()" onMouseOut="stop1();">
<img src="down.gif" onMouseOver="down()" onMouseOut="stop1();">

<div style="width:150px;height:200px;overflow:hidden;border:1px solid;" id="hoge">
a<br>b<br>c<br>d<br>e<br>f<br>g<br>h<br>i<br>j<br>k<br>l<br>m<br>n<br>
o<br>p<br>q<br>r<br>s<br>t<br>u<br>v<br>w<br>x<br>y<br>z<br>
</div>
</body>
</html>

●質問者: pipi_n
●カテゴリ:ウェブ制作
✍キーワード:GIF hoge JavaScript スクロール ソース
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● talepanda
●60ポイント ベストアンサー
function down(){
if (y < 0){y=0;}
var e=document.getElementById("hoge");
if(e.scrollTop<e.scrollHeight-e.offsetHeight){
e.scrollTop = y;
window.status = y;
y = y + step;
timeout=setTimeout("down()",2);
}
}
◎質問者からの返答

まさにこれです!!

ありがとうございました!!!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ