Я пытаюсь сгладить производительность приложения карты, которое я создавал с использованием javascript. Я изначально реализовал перетаскивание, используя
- OnMouseDown
- OnMouseMove
- OnMouseUp
Однако в IE это выглядит очень вяло, и кажется, что когда вы перемещаете курсор очень быстро, карта не обновляет свое положение, пока вы не перестанете двигаться.
Я преобразовал свой код, чтобы использовать нативные события IE
- ondragstart
- ondrag
- ondragend
Производительность была НАМНОГО лучше при использовании этих событий, НО кажется, что я не могу установить курсор мыши, используя стандартные свойства 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;
}
}