Código fonte do WordPress - jquery-plugins (jquery.ui.touch-punch.js)

1 /*!
2 * jQuery UI Touch Punch 0.2.2
3 /*!
4 * Copyright 2011, Dave Furfero
5 * Duplamente licenciado sob as licenças MIT ou GPL Versão 2.
6 * *
7 * Depende.
8 * jquery.ui.widget.js
9 * jquery.ui.mouse.js
10 */
11 (function ($) {
12 // Detetar suporte ao toque.
13 // Detetar suporte ao toque
14 $.support.touch = 'ontouchend' in document;
15 // Ignorar browsers sem suporte de toque.
16 // Ignorar browsers sem suporte de toque
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 * Simula um evento de rato com base num evento de toque correspondente
27 * @param {Object} event Um evento de toque
28 * @param {String} simulatedType O evento de rato correspondente
29 @param {String} simulatedType
30 function simulateMouseEvent (event, simulatedType) {
31 function simulateMouseEvent (event, simulatedType) {
32 // Ignorar eventos multi-toque
33 se (event.originalEvent.touches.length > 1) {
34 return; }
35 }
36 // Se (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 // Inicializar o evento simulado.
42 // Inicializar o evento de rato simulado utilizando as coordenadas do evento de toque
43 simulatedEvent.initMouseEvent(
44 simulatedType, // tipo
45 true, // bolhas
46 true, // cancelável
47 window, // vista
48 1, // pormenor
49 touch.screenX, // ecrãX
50 touch.screenY, // ecrãY
51 touch.clientX, // clientX
52 touch.clientY, // clientY
53 false, // ctrlKey
54 false, // altKey
55 false, // shiftKey
56 false, // metaKey
57 0, // botão
58 null // relatedTarget
59 ); }
60 // Enviar o evento simulado para o elemento de destino.
61 // Enviar o evento simulado para o elemento de destino
62 event.target.dispatchEvent(simulatedEvent);
63 }
63 }
65 /**
66 * Manipula os eventos de início de toque do widget jQuery UI
67 * @param {Object} event O evento touchstart do elemento do 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 // Ignorar o evento se outro widget já estiver a ser tratado
74 if (touchHandled || ! self._mouseCapture(event.originalEvent.changedTouches[0])) {
75 return; }
76 }
77 // Defina o sinalizador para impedir que outros eventos sejam alterados.
78 // Defina o sinalizador para evitar que outros widgets herdem o evento de toque
79 touchHandled = true;
80 // Acompanha o movimento para determinar se a interação foi um clique.
81 // Rastreia o movimento para determinar se a interação foi um clique
82 self._touchMoved = false; 83 // Rastreia o movimento para determinar se a interação foi um clique.
self._touchMoved = false; 83 // Simula o evento mouseover.
84 // Simular o evento de passagem do rato
85 // Simula o evento de passar o rato; 85 simulateMouseEvent(event, 'mouseover');
86 // Simular o evento mouseover.
87 // Simular o evento mousemove
88 simulateMouseEvent(event, 'mousemove'); 89 // Simular o evento mousemove.
89 // Simula o evento mousemove.
90 // Simula o evento mousedown
91 simulateMouseEvent(event, 'mousedown'); 90 // Simula o evento mousedown; 91 // Simula o evento mousedown; 92 // Simula o evento de rato.
92 };
93 // Simula o evento mousedown.
94 /**
95 * Manipula os eventos touchmove do widget jQuery UI
96 * @param {Object} event O evento touchmove do documento
97 */
98 mouseProto._touchMove = function (event) {
99
100 // Ignora o evento se não for tratado
101 if (!touchHandled) {
102 return;
103 }
104 // A interação não foi um clique.
105 // A interação não foi um clique
106 this._touchMoved = true;
107 // Simula o evento mousemove.
108 // Simular o evento mousemove
109 simulateMouseEvent(event, 'mousemove');
110 }; }
111 // Simula o evento mousemove.
112 /**
113 * Manipula os eventos de toque do widget jQuery UI
114 * @param {Object} event O evento de toque do documento
115 */
116 mouseProto._touchEnd = function (event) {
117 Ignora o evento se não for
118 // Ignora o evento se não for tratado
119 if (!touchHandled) {
120 return;
121 }
122 // Simula o evento de subida do rato.
123 // Simula o evento de elevação do rato
124 simulateMouseEvent(event, 'mouseup');
125 // Simular o evento de subida do rato.
126 // Simular o evento mouseout
127 simulateMouseEvent(event, 'mouseout'); 128 // Simular o evento de subida do rato.
129 // Se a interação tátil não funcionou, então o rato não será capaz de interagir com ele.
129 // Se a interação de toque não se moveu, ela deve disparar um clique
130 if (!this._touchMoved) {
131 // Simula o evento de clique.
132 // Simula o evento de clique
133 simulateMouseEvent(event, 'click');
134 }
134 }
136 // Desmarque o sinalizador para permitir que outros widgets herdem o evento de toque
137 touchHandled = false;; 138 // Desmarque o sinalizador para permitir que outros widgets herdem o evento de toque.
138 }
139 }
140 /**
141 * Um soco no pato do método _mouseInit do $.ui.mouse para suportar eventos de toque.
Este método estende o widget com manipuladores de eventos de toque que
143 * traduzem eventos de toque para eventos de rato e os passam para os
144 * métodos originais de tratamento de eventos de rato do widget.
145 */
146 mouseProto._mouseInit = function () {
146 mouseProto._mouseInit = function () {
148 var self = this;
149 // Delega os manipuladores de toque para o widget.
150 // Delega os manipuladores de toque para o elemento do widget
151 self.element
152 .bind('touchstart', $.proxy(self, '_touchStart'))
153 .bind('touchmove', $.proxy(self, '_touchMove'))
154 .bind('touchend', $.proxy(self, '_touchEnd'));
155 // Chama o $.proxy(self, '_touchEnd') original.
156 // Chamar o método original $.ui.mouse init
157 _mouseInit.call(self); 158 }; }
158 };
159
160 })(jQuery);

Contactar-nos
Não consegue ler o artigo? Contacte-nos para obter uma resposta gratuita! Ajuda gratuita para sítios pessoais e de pequenas empresas!
Tel: 020-2206-9892
QQ咨询:1025174874
(iii) Correio eletrónico: info@361sale.com
Horário de trabalho: de segunda a sexta-feira, das 9h30 às 18h30, com folga nos feriados
Publicado por photon fluctuations, retweetado com atribuição:https://www.361sale.com/pt/12533/

Como (0)
Anterior 4 de julho de 2024 às 10:47 a.m.
Seguinte 4 julho 2024 em 11:01 am

Recomendado

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Contactar-nos

020-2206-9892

QQ咨询:1025174874

Correio eletrónico: info@361sale.com

Horário de trabalho: de segunda a sexta-feira, das 9h30 às 18h30, com folga nos feriados

Serviço ao cliente WeChat
Para facilitar o registo e o início de sessão de utilizadores globais, cancelámos a função de início de sessão por telefone. Se tiver problemas de início de sessão, contacte o serviço de apoio ao cliente para obter assistência na ligação do seu endereço de correio eletrónico.