Código fuente de WordPress - jquery-plugins (jquery.ui.touch-punch.js)

?1 /*!
2 * jQuery UI Touch Punch 0.2.2
?3 /*!
4 * Copyright 2011, Dave Furfero
5 * Licencia dual bajo las licencias MIT o GPL Versión 2.
6 * *
7 * Depende.
8 * jquery.ui.widget.js
9 * jquery.ui.mouse.js
10 */
11 (function ($) {
12 // Detectar soporte táctil.
13 // Detectar soporte táctil
14 $.support.touch = 'ontouchend' en el documento;
15 // Ignorar navegadores sin soporte táctil.
16 // Ignorar navegadores sin soporte táctil
17 if (!$.support.touch) {
18 return;
19 }
20
21 var mouseProto = $.ui.mouse.prototype, 22 _mouseInit = mouseProto.
22 _mouseInit = mouseProto._mouseInit,
23 touchHandled.
24
25 /**
26 * Simular un evento de ratón basado en un evento táctil correspondiente
27 * @param {Object} event Un evento táctil
28 * @param {String} simulatedType El evento de ratón correspondiente
29 @param {String} simulatedType
30 function simulateMouseEvent (event, simulatedType) {
31 function simulateMouseEvent
32 // Ignora los eventos multitáctiles
33 if (event.originalEvent.touches.length > 1) {
34 return; }
35 }
36 // If (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 // Inicializa el evento simulado.
42 // Inicializa el evento simulado del ratón usando las coordenadas del evento touch
43 simulatedEvent.initMouseEvent(
44 simulatedType, // tipo
45 true, // burbujas
46 true, // cancelable
47 window, // vista
48 1, // detalle
49 touch.screenX, // pantallaX
50 touch.screenY, // pantallaY
51 touch.clientX, // clientX
52 touch.clientY, // clientY
53 false, // ctrlKey
54 false, // altKey
55 false, // shiftKey
56 false, // metaKey
57 0, // botón
58 null // relatedTarget
59 ); }
60 // Envía el evento simulado al elemento destino.
61 // Envía el evento simulado al elemento destino
62 event.target.dispatchEvent(simulatedEvent);
63 }
63 }
65 /**
66 * Maneja los eventos touchstart del widget jQuery UI
67 * @param {Object} event El evento touchstart del elemento 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 // Ignora el evento si ya se está manejando otro widget
74 if (touchHandled || !self._mouseCapture(event.originalEvent.changedTouches[0])) {
75 return; }
76 }
77 // Establece la bandera para prevenir que otros eventos cambien.
78 // Establece la bandera para evitar que otros widgets hereden el evento touch
79 touchHandled = true;
80 // Rastrea el movimiento para determinar si la interacción fue un clic.
81 // Rastrea el movimiento para determinar si la interacción fue un click
82 self._touchMoved = false; 83 // Seguir el movimiento para determinar si la interacción fue un clic.
self._touchMoved = false; 83 // Simular el evento mouseover.
84 // Simular el evento mouseover
85 // Simular el evento mouseover; 85 simulateMouseEvent(event, 'mouseover');
86 // Simular el evento mouseover.
87 // Simular el evento mousemove
88 simulateMouseEvent(event, 'mousemove'); 89 // Simular el evento mousemove.
89 // Simular el evento mousemove.
90 // Simular el evento mousedown
91 simulateMouseEvent(event, 'mousedown'); 90 // Simula el evento mousedown; 91 // Simula el evento mousedown; 92 // Simula el evento mouse.
92 };
93 // Simula el evento mousedown.
94 /**
95 * Maneja los eventos touchmove del widget jQuery UI
96 * @param {Object} event Evento touchmove del documento
97 */
98 mouseProto._touchMove = function (event) {
99
100 // Ignora el evento si no ha sido manejado
101 if (!touchHandled) {
102 return;
103 }
104 // La interacción no fue un click
105 // La interacción no fue un click
106 this._touchMoved = true;
107 // Simula el evento mousemove.
108 // Simular el evento mousemove
109 simulateMouseEvent(event, 'mousemove');
110 }; }
111 // Simula el evento mousemove.
112 /**
113 * Maneja los eventos touchend del widget jQuery UI
114 * @param {Object} event El evento touchend del documento
115 */
116 mouseProto._touchEnd = function (event) {
117 Ignorar evento si no
118 // Ignora el evento si no es manejado
119 if (!touchHandled) {
120 return;
121 }
122 // Simula el evento mouseup.
123 // Simular el evento mouseup
124 simulateMouseEvent(event, 'mouseup');
125 // Simular el evento mouseup.
126 // Simular el evento mouseout
127 simulateMouseEvent(event, 'mouseout'); 128 // Simula el evento mouseup.
129 // Si la interacción táctil no funcionó, entonces no se podrá interactuar con el ratón.
129 // Si la interacción táctil no se movió, debería disparar un click
130 if (!this._touchMoved) {
131 // Simula el evento click.
132 // Simula el evento click
133 simulateMouseEvent(event, 'click');
134 }
134 }
136 // Desactiva la bandera para permitir que otros widgets hereden el evento touch
137 touchHandled = false;; 138 // Desactiva la bandera para permitir que otros widgets hereden el evento touch.
138 }
139 }
140 /**
141 * Un duck punch del método $.ui.mouse _mouseInit para soportar eventos táctiles.
142 * Este método extiende el widget con manejadores de eventos táctiles vinculados que
143 * traducen los eventos táctiles a eventos de ratón y los pasan a los métodos
144 * del widget.
145 */
146 mouseProto._mouseInit = function () {
146 mouseProto._mouseInit = function () {
148 var self = this;
149 // Delegar los manejadores táctiles al widget.
150 // Delegar los manejadores táctiles al elemento del widget
151 self.element
152 .bind('touchstart', $.proxy(self, '_touchStart'))
153 .bind('touchmove', $.proxy(self, '_touchMove'))
154 .bind('touchend', $.proxy(self, '_touchEnd'));
155 // Llama al $.proxy(self, '_touchEnd') original.
156 // Llama al método original $.ui.mouse init
157 _mouseInit.call(self); 158 }; }
158 };
159
160 })(jQuery);

Contacte con nosotros
?No puede leer el tutorial? Póngase en contacto con nosotros para obtener una respuesta gratuita. Ayuda gratuita para sitios personales y de peque?as empresas
Servicio de atención al cliente WeChat
Servicio de atención al cliente WeChat
Tel: 020-2206-9892
QQ咨詢:1025174874
(iii) Correo electrónico: info@361sale.com
Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
? Declaración de reproducción
Este artículo fue escrito por Harry
EL FIN
Si le gusta, apóyela.
felicitaciones0 compartir (alegrías, beneficios, privilegios, etc.) con los demás
comentarios compra de sofás

Por favor, inicie sesión para enviar un comentario

    Sin comentarios