touth事件中的touchs,targetTouches ,changedTouches詳解
touchs:當(dāng)前屏幕上所有觸摸點的列表
targetTouches:當(dāng)前對象上所有觸摸點的列表
changedTouches:涉及當(dāng)前(引發(fā))事件的觸摸點的列表
通過一個例子來區(qū)分一下觸摸事件中的這三個屬性:
- 用一個手指接觸屏幕特漩,觸發(fā)事件糯景,此時這三個屬性有相同的值辜窑。
2:用第二個手指接觸屏幕,此時颅眶,touches有兩個元素啊易,每個手指觸摸點為一個值。當(dāng)兩個手指觸摸相同元素時,
targetTouches和touches的值相同欺矫,否則targetTouches 只有一個值纱新。changedTouches此時只有一個值,
為第二個手指的觸摸點穆趴,因為第二個手指是引發(fā)事件的原因
3: 用兩個手指同時接觸屏幕脸爱,此時changedTouches有兩個值,每一個手指的觸摸點都有一個值
4:手指滑動時未妹,三個值都會發(fā)生變化
5: 一個手指離開屏幕簿废,touches和targetTouches中對應(yīng)的元素會同時移除,而changedTouches仍然會存在元素络它。
6: 手指都離開屏幕之后族檬,touches和targetTouches中將不會再有值,changedTouches還會有一個值化戳,
此值為最后一個離開屏幕的手指的接觸點单料。
. 觸點坐標(biāo)選取
touchstart和touchmove使用: e.targetTouches[0].pageX 或
(jquery)e.originalEvent.targetTouches[0].pageX
touchend使用: e.changedTouches[0].pageX 或 (jquery)
e.originalEvent.changedTouches[0].pageX
touchmove事件對象的獲取
想要在touchmove:function(e,參數(shù)一)加一個參數(shù),結(jié)果直接使用e.preventDefault()就會 e 報錯点楼,處理方法為使用arguments[0]獲取event參數(shù)
touchmove:function(e,參數(shù)一){
var e=arguments[0]
e.preventDefault()
}