プロが教えるわが家の防犯対策術!

こんにちは。

http://www.webopixel.net/lab/sample/10/0915/btne …
http://www.webopixel.net/javascript/218.html
こちらを参考にさせて頂きながらローテーションバナーを作成しているのですが
このコードだとsetIntervalの影響で、ボタンを押してバナーをスクロールさせたとしても
次に自動スクロールするタイミングが、前回の自動スクロールから3秒後になってしまいます。
タイミングが悪いとボタンを押した瞬間にオートスクロールしてしまい
やや使い勝手に難が出てきてしまいます。

この現象を回避する様な書き方や方法等ありましたらお教え頂ければと思います。

A 回答 (2件)

clickのイベント処理の中で、


 ・ 一旦setIntervalをクリアしておいて( clearInterva )、
 ・ 改めて、setIntervalをセットする
としてあげればよいのではないでしょうか?

何箇所か同じ内容がでてくるので、function化しておいたほうが簡単かも。
click処理でその関数を呼び出せばよくなります。

ご質問の直接の内容には上記でよいと思いますが、スライドの切替えにanimateを使っているので、実際にはこちらも処理しておかないと動作がぎこちなくなる場合があります。
clearIntervalと同時にアニメーション中の要素( :animated )をstop()するようにしておけばよろしいかと思います。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

ご説明頂いた通り書きました所、無事思い通りの動作になりました。
animateの動作につきましても、まだ試してはいませんが
更に細かく動作を見て手を入れようと思います。

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

お礼日時:2012/01/06 10:24

フラグを立てて処理するしかないと思います


オートスクロール = true
なフラグを立てておいて
imageMove内でtrueなら動かすにしておいて
mouseoverときにfalseにして
imageMoveをキャンセルさせればいいかと思います
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

こちらでご指摘頂いて気づいたのですが
バナーにマウスオーバしている時にオートスクロールしてしまうのも不便ですね。
質問事項に関しましては解決したのですが、また新たな課題に気づく事ができました。

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

お礼日時:2012/01/06 10:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!