移动端touch事件

touch包含三个touch事件:
1、touchstart:手指触摸到一个 DOM 元素时触发。
2、touchmove:手指在一个 DOM 元素上滑动时触发。
3、touchend:手指从一个 DOM 元素上移开时触发。
touch触发后其事件中都包含三个触摸列表,其中都包含手指触摸的一些数据:
touches:当前位于屏幕下的手指列表信息
targetTouches: 当前位于当前元素下的手指列表信息
changedTouches: 当前涉及到当前事件的手指列表
比如touchstart触发的事件中的targetTouches列表中有几个手指触发了事件就会有几个对象,其中还包含了一些数据,比如clientX表示触摸点在浏览器可视窗口中的横坐标。
当想要获取手指离开时的手指数据时使用changedTouches属性,此时touches和targetTouches列表长度都为0
在这里插入图片描述
target 此外事件当中的target表示事件触发的dom元素,可以使用e.target来获取当前touch事件触发的元素节点来执行操作。当有多个元素触发touch事件执行相同的函数时可以使用e.target来获取当前的元素。
touch事件的拖动案例:

window.onload=function () {
    var div=document.querySelector(".touchDiv");
    var startX,startY,moveX,moveY,distanceX,distanceY;
    //touch包含三个touch事件,触发后其事件中都包含三个触摸列表,包含手指触摸的一些数据
    //移动端中推荐使用addEventListener来绑定事件
    div.addEventListener("touchstart",function (e) {
        //touchstart是手指触摸到DOM元素触发的时间,
        startX=e.targetTouches[0].clientX;
        startY=e.targetTouches[0].clientY;
        console.log(e);
        console.log(e.target);
    });
    div.addEventListener("touchmove",function (e) {
        //记录手指触摸移动时的坐标值
        moveX=e.targetTouches[0].clientX;
        moveY=e.targetTouches[0].clientY;
        //计算手指触摸移动时的位置偏移
        distanceX=moveX-startX;
        distanceY=moveY-startY;
        div.style.transform="translate("+distanceX+"px,"+distanceY+"px)";
    });
    div.addEventListener("touchend",function (e) {

    });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值