移动端js|青训营笔记

123 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第23天

今天所记录的是移动端一些特殊的js事件。
一、touch事件

touch事件是移动端特有的js事件,共有四种touch事件:

touchstart: //手指放到屏幕上时触发

touchmove: //手指在屏幕上滑动式触发

touchend: //手指离开屏幕时触发

touchcancel: //系统取消touch事件的时候触发

下面来记录前三种事件的使用方法:

1、获取元素

var div=document.querySelector('div');

2、绑定触摸(touchstart)事件

div.addEventListener('touchstart',function (){
    // touchstart触发条件是按一下
    console.log('摸了一下');
})

3、绑定移动鼠标(touchmove)事件

div.addEventListener('touchmove',function (){
    // touchmove触发条件是按住不松拖动触发
    console.log('继续摸');
})

4、绑定鼠标离开(touchend)事件

div.addEventListener('touchend',function (){
    // touchend触发条件是按住不松拖动触发后松开
    console.log('继续摸');
})
二、TouchEvent触摸对象

TouchEvent是touch事件的对象,可以描述手指在触摸平面(触摸屏,触摸板等) 的状态变化。包括touchstart、touchmove、touchend三个事件对象,在实际开发中经常使用的是targetTouches。

触摸列表说明
touches表示正在触摸屏幕的所有手指的列表
targetTouches表示正在触摸当前DOM元素的手指列表
changedTouches表示手指状态发生了改变的列表
div.addEventListener('touchstart',function (e){
    console.log(e);
    console.log(e.touches);
    // touches 正在触摸屏幕的所有手指的列表
    console.log(e.targetTouches);
    //targetTouches 正在触摸当前DOM元素的手指列表	(是最常使用的一个事件对象)
    //当事件侦听的是一个DOM元素,touches和targetTouches是一样的
    console.log(e.changedTouches);
    //changedTouches 手指状态发生了改变的列表 从无到有 或者 从有到无
      console.log(e.targetTouches[0]);
    //打印当前DOM元素第一个手指的相关信息 , 比如手指坐标
div.addEventListener("touchend",function(e){
	// 当手指离开DOM元素时,touches和targetTouches的长度length为0,因为并没有手指在触摸元素
	// 但changedTouches的长度length是1,因为它是从有到无,可以记录
	console.log(e);
})