2010-08-04 3 views

Répondre

3

Je vais supposer que par «défilement» vous voulez dire le geste panoramique.

Regarder Handling Events documentation pour Safari mobile, il semble que si l'élément est scrollable vous ne serez pas en mesure de détecter toute différence en utilisant les haut niveau DOM-événements (à la fois l'un et à deux doigts geste panoramique entraînera un événement onscroll lorsque le mouvement s'arrête). Si l'élément est scrollable, vous recevrez une série d'événements mousewheel à la place.

Si vous voulez bien vous salir les mains, jetez un oeil à la section 'Handling Multi-Touch Events'. Vous pouvez probablement réaliser ce que vous voulez en choisissant de recevoir les événements multi-touch de plus bas niveau (touchStart, touchMove, touchEnd, touchCancel). L'objet événement transmis aux gestionnaires de ces événements contient une propriété 'touches' qui vous permet de regarder la position de tous les "doigts". Cela vous donnerait probablement toutes les informations dont vous avez besoin.

N'oubliez pas cependant d'éviter le comportement par défaut, sinon vous recevrez toujours les événements onscroll et/ou mousewheel. Jetez un oeil à la démo "virtual light table" pour avoir un peu d'inspiration sur la gestion des événements multi-touch en javascript. Il y a aussi un excellent article at sitepen.com que vous devriez jeter un coup d'œil.

Questions connexes