JavaScript を使用して構築しているマップ アプリケーションのパフォーマンスをスムーズにしようとしています。私は最初にドラッグパンを実装しました
- オンマウスダウン
- onmousemove
- オンマウスアップ
ただし、IE では非常に遅く感じられ、カーソルを非常に速く移動すると、移動を停止するまでマップの位置が更新されないように見えます。
ネイティブ IE イベントを使用するようにコードを変換しました
- オンドラッグスタート
- オンドラッグ
- オンドラゲンド
これらのイベントを使用すると、パフォーマンスが大幅に向上しましたが、標準の css プロパティを使用してマウス カーソルを設定できないようです。カーソルをいくつかの定義済みのものにしか設定できませんが、これは私が望んでいるものではありません。
だから私の質問はです。最初のイベント セットを使用して IE でドラッグをスムーズにする方法、またはネイティブ イベントを使用してカスタム カーソルを設定する方法を教えてください。
編集:コードサンプル
コードは非常にシンプルです。新しいタイルをロードするためのロジックを削除しても (つまり、コンテナーだけが移動されます)、まだぎこちなく感じられます。以下はパン機能です。
// the "this" object refers to the div containing all the tile layers.
function movemap(e)
{
e = e || window.event;
var dx = this.mouseX - e.clientX;
var dy = this.mouseY - e.clientY;
if (dx !== 0 || dy !== 0) {
this.style.left = parseInt(this.style.left) + dx + 'px';
this.style.top = parseInt(this.style.top) + dy + 'px';
this.mouseX = e.clientX;
this.mouseY = e.clientY;
}
}