Code source WordPress - jquery-plugins (jquery.ui.touch-punch.js)

1 /* !
2 * jQuery UI Touch Punch 0.2.2
3 /* !
4 * Copyright 2011, Dave Furfero
5 * Sous licence MIT ou GPL Version 2.
6 * *
7 * Dépend.
8 * jquery.ui.widget.js
9 * jquery.ui.mouse.js
10 */
11 (function ($) {
12 // Détecter le support tactile.
13 // Détecter le support tactile
14 $.support.touch = 'ontouchend' dans le document ;
15 // Ignorer les navigateurs sans support tactile.
16 // Ignorer les navigateurs sans support tactile
17 if (!$.support.touch) {
18 retour ;
19 }
20
21 var mouseProto = $.ui.mouse.prototype, 22 _mouseInit = mouseProto.
22 _mouseInit = mouseProto._mouseInit,
23 touchHandled.
24
25 /**
26 * Simuler un événement souris en fonction d'un événement tactile correspondant
27 * @param {Object} event Un événement tactile
28 * @param {String} simulatedType L'événement souris correspondant
29 @param {String} simulatedType
30 function simulateMouseEvent (event, simulatedType) {
31 function simulateMouseEvent
32 // Ignore les événements multi-touch
33 if (event.originalEvent.touches.length > 1) {
34 return ; }
35 }
36 // Si (event.originalEvent.touches.length > 1) { 34 return ; 35 }
37 event.preventDefault() ; event.originalEvent.touches.length > 1 { return ; 36 }
38 var touch = event.originalEvent.changedTouches[0] ; }
39 var touch = event.originalEvent.changedTouches[0],
40 simulatedEvent = document.createEvent('MouseEvents') ;
41 // Initialisation de l'événement simulé.
42 // Initialiser l'événement souris simulé en utilisant les coordonnées de l'événement touch
43 simulatedEvent.initMouseEvent(
44 simulatedType, // type
45 true, // bulles
46 true, // annulable
47 window, // vue
48 1, // détail
49 touch.screenX, // screenX
50 touch.screenY, // screenY
51 touch.clientX, // clientX
52 touch.clientY, // clientY
53 false, // ctrlKey
54 false, // altKey
55 false, // shiftKey
56 false, // metaKey
57 0, // bouton
58 null // relatedTarget
59 ) ; }
60 // Envoyer l'événement simulé à l'élément cible.
61 // Envoi de l'événement simulé à l'élément cible
62 event.target.dispatchEvent(simulatedEvent) ;
63 }
63 }
65 /**
66 * Gérer les événements de démarrage tactile du widget jQuery UI
67 * @param {Object} event L'événement de démarrage tactile de l'élément du widget
68 */
69 mouseProto._touchStart = function (event) {
70 var self = this ; var mouseProto._touchStart = function (event) {
71 var self = this ;
71 var self = this ; }
73 // Ignorer l'événement si un autre widget est déjà en cours de traitement
74 if (touchHandled || !self._mouseCapture(event.originalEvent.changedTouches[0])) {
75 return ; }
76 }
77 // Activez le drapeau pour empêcher d'autres événements de changer.
78 // Définir le drapeau pour empêcher d'autres widgets d'hériter de l'événement touch
79 touchHandled = true ;
80 // Suivre le mouvement pour déterminer si l'interaction était un clic.
81 // Suivre le mouvement pour déterminer si l'interaction était un clic.
82 self._touchMoved = false ; 83 // Suivre le mouvement pour déterminer si l'interaction était un clic.
self._touchMoved = false ; 83 // Simuler l'événement mouseover.
84 // Simulation de l'événement de survol de la souris
85 // Simulation de l'événement de survol de la souris ; 85 simulateMouseEvent(event, 'mouseover') ;
86 // Simulation de l'événement "mouseover".
87 // Simulation de l'événement "mouseemove" (déplacement de la souris)
88 simulateMouseEvent(event, 'mousemove') ; 89 // Simulation de l'événement mousemove.
89 // Simulation de l'événement mousemove.
90 // Simulation de l'événement mousedown
91 simulateMouseEvent(event, 'mousedown') ; 90 // Simule l'événement mousedown ; 91 // Simule l'événement mousedown ; 92 // Simule l'événement souris.
92 } ;
93 // Simule l'événement mousedown.
94 /**
95 * Gérer les événements touchmove du widget jQuery UI
96 * @param {Object} event L'événement touchmove du document
97 */
98 mouseProto._touchMove = function (event) {
99
100 // Ignore l'événement s'il n'est pas géré
101 if (!touchHandled) {
102 return ;
103 }
104 // L'interaction n'était pas un clic.
105 // L'interaction n'était pas un clic
106 this._touchMoved = true ;
107 // Simulation de l'événement mousemove.
108 // Simulation de l'événement mousemove
109 simulateMouseEvent(event, 'mousemove') ;
110 } ; }
111 // Simulation de l'événement mousemove.
112 /**
113 * Gérer les événements touchend du widget jQuery UI
114 * @param {Object} event L'événement touchend du document
115 */
116 mouseProto._touchEnd = function (event) {
117 Ignorer l'événement s'il n'est pas géré
118 // Ignorer l'événement s'il n'est pas géré
119 if (!touchHandled) {
120 return ;
121 }
122 // Simuler l'événement mouseup.
123 // Simulation de l'événement mouseup
124 simulateMouseEvent(event, 'mouseup') ;
125 // Simulation de l'événement mouseup.
126 // Simulation de l'événement mouseout
127 simulateMouseEvent(event, 'mouseout') ; 128 // Simulation de l'événement mouseup.
129 // Si l'interaction tactile n'a pas fonctionné, la souris ne pourra pas interagir avec elle.
129 // Si l'interaction tactile n'a pas bougé, elle doit déclencher un clic
130 if (!this._touchMoved) {
131 // Simulez l'événement de clic.
132 // Simuler l'événement de clic
133 simulateMouseEvent(event, 'click') ;
134 }
134 }
136 // Désactiver le drapeau pour permettre à d'autres widgets d'hériter de l'événement touch
137 touchHandled = false; ; 138 // Désactiver le drapeau pour permettre à d'autres widgets d'hériter de l'événement tactile.
138 }
139 }
140 /**
141 * Un coup de canard de la méthode $.ui.mouse _mouseInit pour prendre en charge les événements tactiles.
142 * Cette méthode étend le widget avec des gestionnaires d'événements tactiles liés qui
143 * traduisent les événements tactiles en événements souris et les transmettent aux méthodes de gestion des événements souris du widget.
144 * méthodes originales de gestion des événements souris du widget.
145 */
146 mouseProto._mouseInit = function () {
146 mouseProto._mouseInit = function () {
148 var self = this ;
149 // Déléguer les gestionnaires de toucher au widget.
150 // Déléguer les gestionnaires de contact à l'élément du widget
151 self.element
152 .bind('touchstart', $.proxy(self, '_touchStart'))
153 .bind('touchmove', $.proxy(self, '_touchMove'))
154 .bind('touchend', $.proxy(self, '_touchEnd')) ;
155 // Appelle l'original $.proxy(self, '_touchEnd').
156 // Appel de la méthode originale $.ui.mouse init
157 _mouseInit.call(self) ; 158 } ; }
158 } ;
159
160 })(jQuery) ;

Contactez nous
Vous n'arrivez pas à lire le tutoriel ? Contactez-nous pour une réponse gratuite ! Aide gratuite pour les sites personnels et les sites de petites entreprises !
Service clientèle WeChat
Service clientèle WeChat
Tel : 020-2206-9892
QQ咨询:1025174874
(iii) Courriel : info@361sale.com
Horaires de travail : du lundi au vendredi, de 9h30 à 18h30, jours fériés.
© Déclaration de reproduction
Cet article a été rédigé par Harry
LA FIN
Si vous l'aimez, soutenez-le.
félicitations0 partager (joies, avantages, privilèges, etc.) avec les autres
commentaires achat de canapé

Veuillez vous connecter pour poster un commentaire

    Pas de commentaires