- 締切済み
ボタン上でマウスを押している間に、ウィンドウをスクロールしたい
フォームボタンを押している間、インラインフレームのウィンドウをスクロールしたいのですが 思うように動作してくれません。 最初、タグのonmousedown属性とonmouseup属性を使用して 簡単に実装できると思っていたのですが mouseupのイベントがうまく拾えないようで、あきらめました。 下記のようなマウスドラッグのサンプルソースがあったので こちらを改造しようと思ったのですが、いろいろいじってみてもだめでした。 「マウスが離された」というイベントはどうすれば拾えるのでしょうか? IE限定の動作を予定しています。 よろしくお願いいたします。 <script type="text/javascript"> //tab→全角スペース //マウスをクリックして動かしている間だけスクロールする window.document.onmousemove = scrollSubWindow; window.document.onmouseup = scrollOff; scrollFlag = false; function scrollOn() { scrollFlag = true; } function scrollOff() { scrollFlag = false; } function scrollSubWindow() { if( !scrollFlag ) return; Dummy.scrollBy( 0, 10 ); return false; } </script> <iframe src="dummy.html" name="Dummy" width=200 height=200></iframe> <input type="button" value="下へ" onMousedown="scrollOn()" style="width: 200px; height: 200px;">
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- auty
- ベストアンサー率58% (284/486)
nakata321さん、 これは「タイマーイベント」です。 「時間が経過したら呼んでください。」 ということですね。
- auty
- ベストアンサー率58% (284/486)
以下のコードを参考にしてみてください。 ---------------------------------------------------------------- <script language="JavaScript" type="text/javascript"> <!-- var td ; //window.document.onmousemove = scrollSubWindow; //window.document.onmouseup = scrollOff; //scrollFlag = false; function scrollOn() { td=setInterval("scrollSubWindow()",120); scrollSubWindow(); } function scrollOff() { clearInterval(td); } function scrollSubWindow() { frames[0].scrollBy( 0, 100 ); return false; } //--> </script> </head> <body> <iframe src="dummy.html" name="Dummy" width=200 height=200></iframe> <input type="button" value="下へ" onmouseDown="scrollOn()" onmouseUp="scrollOff()" style="width: 200px; height: 200px;"> </body>
お礼
イベント云々ではなく、こんな方法で実現できるんですね。 目からうろこでした。 書いていただいたコード、自前のプログラムに無事組み込めました。 ありがとうございました。