2011-06-27 2 views
1

私は(http://jsfiddle.net/XMhMR/1/)をクリックしてドラッグすることができる簡単なdivを作成しました。あなたがクリックしてドラッグするたびに、divはの雷の速度に移動します。Divのクリック+速度の高すぎますか?

私はもっと速くないGoogle Mapsスタイルのクリックとドラッグがもっと必要です。私はデルタを10倍に分割しようとしましたが、それは不思議なほど加速して減速します。誰が何が起こっているのか知っていますか?

答えて

2

「現在の位置」と同じ方法でスクロール変数を処理する必要があります。毎回それらを掴むのではなく、オブジェクトに保管してください。基本的には、移動するたびに各動きを追加しています。 2px移動した場合は2px移動し、2回移動した場合は2px移動し、2回移動した場合は2 + 2移動します。しかし、あなたはすでに2で移動しているので、今は4ではなく6で移動しています...これは最終的には本当に速くなるように構築されています。

http://jsfiddle.net/XMhMR/3/

0

私は愚か者であることを知りました。固定バージョンはhttp://jsfiddle.net/XMhMR/2/です。

要約:すべてのmousemoveイベントでscrollLeftとscrollTopの位置を再計算しないでください。デルタを再配置して加速させるためです。

関連する問題