J'ai essayé de lisser les performances d'une application de carte que j'ai construit en utilisant javascript. J'ai d'abord mis en place un glisser moule en utilisantIE lissage d'un plateau de carte lors du glissement
- onmousedown
- onmousemove
- onmouseup
Cependant, dans IE il se sent vraiment lent et il semble que lorsque vous déplacez le curseur vraiment rapide la carte n » t le mettre à jour jusqu'à ce que vous arrêtiez de bouger.
Je converti mon code pour utiliser les événements IE natifs
- ondragstart
- ondrag
- ondragend
La performance était beaucoup mieux lors de l'utilisation de ces événements, mais il semble que je peux Ne placez pas le curseur de la souris en utilisant les propriétés css standard. Je ne peux que placer le curseur sur quelques uns prédéfinis ce qui n'est pas ce que je veux.
Ma question est. Comment puis-je lisser le glisser dans IE en utilisant le premier ensemble d'événements ou comment puis-je définir un curseur personnalisé en utilisant les événements natifs.
EDIT: Code échantillon
Le code est très très simple. Même lorsque je supprime la logique pour charger de nouvelles tuiles (c'est-à-dire que seul le conteneur est déplacé), cela reste maladroit. Ci-dessous la fonction panoramique:
// 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;
}
}
Exact duplicate: http://stackoverflow.com/questions/2181482/ie-ondrag-event-setting-mouse-cursor-to-no-drop – jvenema
J'ai supprimé ma vieille question car je pense que celui-ci est un meilleure explication du problème. Merci. – Alex