• 締切済み

ボタン上でマウスを押している間に、ウィンドウをスクロールしたい

フォームボタンを押している間、インラインフレームのウィンドウをスクロールしたいのですが 思うように動作してくれません。 最初、タグの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;">

みんなの回答

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

nakata321さん、 これは「タイマーイベント」です。    「時間が経過したら呼んでください。」 ということですね。

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

以下のコードを参考にしてみてください。 ---------------------------------------------------------------- <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>

nakata321
質問者

お礼

イベント云々ではなく、こんな方法で実現できるんですね。 目からうろこでした。 書いていただいたコード、自前のプログラムに無事組み込めました。 ありがとうございました。

関連するQ&A