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) ;
© Déclaration de reproduction
Cet article a été rédigé par Harry
Lien vers cet article :https://www.361sale.com/fr/12533L'article est protégé par le droit d'auteur et doit être reproduit avec mention.
LA FIN






















![Emoji[wozuimei]-Photonflux.com | Service professionnel de réparation de WordPress, dans le monde entier, réponse rapide](https://www.361sale.com/wp-content/themes/zibll/img/smilies/wozuimei.gif)
![Émoticône [baoquan] - Photon Wave Network | Services professionnels de réparation WordPress, couverture mondiale, réponse rapide](https://www.361sale.com/wp-content/themes/zibll/img/smilies/baoquan.gif)

Pas de commentaires