本文已参与「新人创作礼」活动,一起开启掘金创作之路
本文主要记录了移动端特有的touch事件,以及touch事件的分类等演示。
touch事件
touch事件是移动端特有的,由于移动端设备大都具备触摸功能,所以移动端浏览器都引入了触摸 touch事件。 touch相关的事件跟普通的其他dom事件一样使用,可以直接用addEventListener来监听和处理。
touch事件分类
- touchstart:手指开始触碰时触发;
- touchmove:手指滑动时触发;
- touchend:手指移开时触发;
- touchcancel :中断时触发;
touchcancel 不常用, 当一些更高级别的事件发生的时候(如电话接入或者弹出信息)会取消当前的touch操作。一般会在touchcancel时暂停游戏、存档等操作。
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>移动端事件</title>
<style>
div{
width: 200px;
height: 200px;
background-color: red;
}
</style>
</head>
<body>
<div id="div"></div>
<script>
const divEl = document.getElementById('div');
// false 代表不捕获,即冒泡
divEl.addEventListener('touchstart', handStart, false);
divEl.addEventListener('touchmove', handMove, false);
divEl.addEventListener('touchend', handEnd, false);
function handStart (){
console.log('handStart');
}
function handMove (){
console.log('handMove');
}
function handEnd (){
console.log('handEnd');
}
</script>
</body>
</html>
页面效果
点击红色区域未移动
点击红色区域未移动时,触发touchstart、 touchmove事件;
点击红色区域,移动到红色区域抬起
==点击红色区域,移动到红色区域抬起时==,触发touchstart、 touchmove、touchend事件;
点击红色区域,移动到红色区域外抬起
==点击红色区域,移动到红色区域外抬起时==,触发touchstart、 touchmove、touchend事件;
在红色区域外点击,移动到红色区域抬起
==在红色区域外点击,移动到红色区域抬起时==,没有触发任何事件;
在红色区域外点击,穿过红色区域移动到红色区域外抬起
==在红色区域外点击,穿过红色区域移动到红色区域外抬起时==,没有触发任何事件;
本文到此结束
如果大家还有什么其他想法,欢迎在评论区交流!