咱们在移动端开发时,会发现会遇到一个需求,就是手触摸手机屏幕进行滑动时,发生一系列事情,这里我来系统整理一下touch事件。git
首先,touch事件包含三类事件:github
下面是touch的属性截图: 数组
经过这个图,咱们能够看到其中有三个属性:dom
这三个列表的差距很是的细微,首先其属性内部包含的东西都差很少,如图所示:ide
首先能够看出其是一个数组,如今咱们详细介绍这里具体的属性的意思spa
这里一个小demo,手触摸屏幕,屏幕上显示开始触摸的点的坐标以及水平方向和垂直方向移动的距离code
<div id="box">
请在移动端,PC上没法查看效果,滑动查看效果
<div>当前触摸点的横坐标是:<span id="curDisX"></span>,纵坐标是:<span id="curDisY"></span></div>
<div>水平方向移动的距离是<span id="moveDisX"></span>,垂直方向移动的距离是:<span id="moveDisY"></span></div>
</div>
<script>
var oBox = document.querySelector('#box');
var oCurDisX = document.querySelector('#curDisX');
var oCurDisY = document.querySelector('#curDisY');
var oMoveDisX = document.querySelector('#moveDisX');
var oMoveDisY = document.querySelector('#moveDisY');
var currentX, currentY, moveX, moveY;
document.addEventListener('touchstart', (e) => {
console.log(e.touches);
currentX = e.touches[0].clientX;
currentY = e.touches[0].clientY;
oCurDisX.innerHTML = currentX;
oCurDisY.innerHTML = currentY;
})
document.addEventListener('touchmove', (e) => {
moveX = e.touches[0].clientX - currentX;
moveY = e.touches[0].clientY - currentY;
oMoveDisX.innerHTML = moveX;
oMoveDisY.innerHTML = moveY;
})
</script>
复制代码
在touchend事件中,touches和targetTouches的长度都为0,由于触摸离开时,没有触摸点了,注意前面对touches、targetTouches和changeTouches的定义cdn
一个移动端轮播图收藏连接blog
欢迎来关注个人我的博客博客连接事件