Ho cercato in specification, i 4 eventi di tocco ereditano dall'oggetto touchEvent
, che ha 3 atributes elenco contenente le informazioni su tutti i tocchi (ogni dito sullo schermo) al momento della evento, ogni elenco salva i tocchi in base a questi criteri:
changedTouches
: Salva i tocchi che sono fuori dalla superficie dell'elemento mirato.
touches
: salva tutti i tocchi correnti.
targetTouch
: Salva tutti i tocchi correnti che si trovano all'interno della superficie dell'elemento di destinazione.
Il touchend dell'evento salva la posizione in cui il dito è stato sollevato a changedTouches
e il nulla viene salvato in nessuno degli altri elenchi, quindi se è necessario accedere a questo, è necessario utilizzare event.changedTouches[event.changedTouches.length-1]
, questo restituisce un oggetto tocco con pageX e Pagina Y attribuisce per coordinate.
L'intera linea sarebbe:
span.innerHTML = event.changedTouches[event.changedTouches.length-1].pageX;
Quello che non sono stato in grado di capire ancora è se non c'è coordinare atributes nell'oggetto
touchEvent
, perché si arriva a usarli in occasione di eventi TouchStart e TouchMove, e non con touchend. Forse l'implementazione ha aggiunto questa scorciatoia o mi sono sbagliato.
fonte
2014-07-10 00:54:24
Era così facile? Grazie! Perché funziona senza 'mousemove' su' mouseup'? – Rikard
Che io non sappia. E avrei immaginato che quell'evento di tocco avrebbe incluso la posizione in cui è finito, ma forse ci sono casi d'angolo dove non è possibile dare, come quando il tocco esce dall'area (non è possibile dare un valore esplicito del ** corrente ** anche se il precedente era noto). 'mouseup' quindi di nuovo * sempre * all'interno dell'area e' mouseout' viene utilizzato quando si esce dall'area. – adrenalin
Ha senso. Grazie ancora! – Rikard