Réponse lente à l'événement click sur iPad
J'ai fait une démo d'une photo concept qui permet de basculer entre les deux images pour montrer une différence entre les entre eux.
J'ai une onMouseClick événement qui fonctionne très bien, sauf sur l'iPad. La réponse est instantanée sur mon bureau, mais est assez retardé sur la tablette, peut-être 500ms?
Est-ce normal? Est-il un autre moyen que je peux gérer cela?
Javascript:
var img1 = new Image();
img1.src = "http://watkinsfilm.com/wp-content/uploads/2012/09/19mm.jpg";
var img2 = new Image();
img2.src = "http://watkinsfilm.com/wp-content/uploads/2012/09/200mm.jpg";
function test() {
if (document.pic.src == 'http://watkinsfilm.com/wp-content/uploads/2012/09/19mm.jpg') {
document.pic.src = 'http://watkinsfilm.com/wp-content/uploads/2012/09/200mm.jpg';
}
else if (document.pic.src == 'http://watkinsfilm.com/wp-content/uploads/2012/09/200mm.jpg') {
document.pic.src = 'http://watkinsfilm.com/wp-content/uploads/2012/09/19mm.jpg';
}
}
Corps:
<div>
<table id="table-1" >
<tr><td>
<img id="img" src="http://watkinsfilm.com/wp-content/uploads/2012/09/19mm.jpg" name="pic" onMouseDown="test()"/>
<img id="png1" src="http://www.thedigitaltrekker.com/wp-content/uploads/2012/03/logo-6smA.png"/>
Click on the image above to toggle between 19mm and 200mm <br>
</td></tr>
</table>
</div>
Également sur jsfiddle: http://jsfiddle.net/ntmw/R4pey/5/
source d'informationauteur ntmw
Vous devez vous connecter pour publier un commentaire.
iOS délibérément des retards sur des événements afin que les gestes/balayage fonctionne correctement. Par exemple, lorsque vous appuyez sur un élément que vous vouliez dire pour faire défiler toute la page, déclenche pas l'événement de clic sur un élément. Pour obtenir un contrôle plus précis, utilisez les événements tactiles.
Voir: https://developer.mozilla.org/en-US/docs/DOM/Touch_events
Exemple à l'aide de
touchstart
: http://jsfiddle.net/R4pey/7/.Note que la capture des événements tactiles a des conséquences, par exemple, vous pouvez remplacer un comportement que l'utilisateur s'attend (comme glisser).
Notez également que vous devez généralement lier vos événements indépendamment de votre balise (pas inline) afin d'obtenir un nettoyeur de séparation de balisage et de script.
Voici un exemple à l'aide de jQuery qui lie les événements distincts de la balise, et gère à la fois
click
ettouchstart
événements. Testé dans Chrome 21, 15 FF, IE9, et sur l'iPad 3.consultez le lien suivant pour plus rapide et réactif boutons:
https://developers.google.com/mobile/articles/fast_buttons?hl=de-DE&csf=1
Mettre en œuvre touchend Gestionnaires d'Événements
Contrairement à cliquez sur et évènements touchstarttouchend les événements sont déclenchés instantanément, sans 300ms retard. Cela peut être pratique si vous êtes en développement une touche uniquement WebGL ou de la toile de base de jeu, cependant, vous ne pouvez pas compter uniquement sur touchend dans les pages web standard.
J'ai déjà eu quelques problèmes avec des images sur les appareils IOS. Pour exemple, j'utilise HTML5 les dégradés et les ombres (aussi des images) sur mon site et a remarqué une énorme différence de réponse lors de la suppression d'images.
Jointe, cliquez sur l'événement fonctionne bien mais la réponse est lente car Safari semble occupé avec les images (pioche sans cesse).
J'ai utilisé un iPad3 pour le tester. Un gars a écrit un article intéressant sur les problèmes d'image sur IOS.
Voir:
http://roman.tao.at/dev/mobile-safari-memory-usage-with-images/