我试图平滑我一直在使用 javascript 构建的地图应用程序的性能。我最初使用
- onmousedown
- onmousemove
- onmouseup
但是在 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;
}
}