移动端新增了4个与手指触摸相关的事件

  • touchstart:手指触摸手机屏幕时触发
  • touchmove:手指在手机屏幕移动时触发
  • touchend:手指离开手机屏幕时触发
  • touchcancel:系统取消touch事件的时候触发,比如电话

每个触摸事件被触发后,会生成一个event对象,event对象中changedTouches会记录手指滑动的信息。

e.touches;//当前屏幕上的手指e.targetTouches;//当前dom元素上的手指。e.changedTouches;//触摸时发生改变的手指。

这些列表里的每次触摸由touch对象组成,touch对象里包含着触摸信息,主要属性如下

clientX / clientY: //触摸点相对浏览器窗口的位置pageX / pageY:     //触摸点相对于页面的位置

原生获取以及jquery获取的方法

Jquery的写法

$('#id').on('touchstart',function(e) {var touch = e.originalEvent.targetTouches[0];var x= touch.pageX;
});$('#id').on('touchmove',function(e) {var touch = e.originalEvent.targetTouches[0];var x= touch.pageX;
});$('#id').on('touchend',function(e) {var touch = e.originalEvent.changedTouches[0];var x= touch.pageX;
}

原生的写法

document.getElementById("id").addEventListener("touchstart",function(e)
{var x=e.touches[0].pageX;var y=e.touches[0].pageY;console.log("start",x)
})
document.getElementById("id").addEventListener("touchmove",function(e)
{var x=e.touches[0].pageX;var y=e.touches[0].pageY;console.log("move",x)
})
document.getElementById("id").addEventListener("touchend",function(e)
{var x=e.changedTouches[0].pageX;var y=e.changedTouches[0].pageY;console.log("end",x)
})

最后实现一个简单的滑动轮播思路

      var startX;var moveX;var endX;$('dom').on('touchstart',function(e){var touchE = e.originalEvent.targetTouches[0];//拿到触摸的对象startX = touchE.pageX;//记录开始位置clearInterval(timer);//清除轮播图的定时器});$('dom').on('touchmove',function(e){var touchE = e.originalEvent.targetTouches[0];moveX = touchE.pageX;//手指移动的位置$(this).css({'transition':'none',//清除过度'transform':'translateX('+ -当前位置 + moveX +'px)'// 让ul跟着移动});});$('.jd-banner ul').on('touchend',function(e){//1. 记录移动的距离var touchE = e.originalEvent.changedTouches[0];endX = touchE.pageX;//移动的距离//2. 判断移动距离是否超过1/3屏,判断上一屏还是下一屏,或者是吸附var mX = endX - startX;if( Math.abs(endX - startX) > liWidth / 3 ){mX > 0 ? index -- : index ++;//判断是否大于0 ,大于0 index--,向右滑动;小于0 index++, 向左滑动}//3. 添加过渡,移动. 执行动画$(this).css({'transition':'all .3s','transform':'translateX('+ (-index*liWidth) +'px)'});//4. 开启定时器timer = setInterval(run,1000);})

注意点

  • touchstart,touchmove方法中使用targetTouches[0]; touchend 需要使用changedTouches[0]
  • 一般我们取第一个手指的坐标,如果有其他要求可能 需要判断手指数量
if (e.targetTouches.length == 1)
{//...
}
  • 有时需要组织默认行为,
    e.preventDefault();

移动端的触屏四个方法:touchstart,touchmove,touchend,touchcancel相关推荐

  1. 手机html端悬浮球,手机移动端网站触屏可拖动悬浮球

    手机移动端网站触屏可拖动悬浮球 touch { width: 60px; height: 60px; position: absolute; left: 600px; top: 300px; marg ...

  2. 移动端事件touchstart touchmove touchend 动画事件 过渡事件

    在移动端新增了touch事件,因为手指的行为叫做"触摸", 鼠标的行为叫做"点击" 但是它仍然支持点击事件,有300ms的延迟,检测是否双击 移动端的三个事件 ...

  3. win11系统没有触屏怎么办 Windows11没有触屏的解决方法

    很多用户都会使用电脑的触屏功能,方便快捷.但是不少用户升级win11系统之后发现触屏功能没有了,使用起来非常不习惯.针对这个问题,小编就给大家带来了解决方法,遇到同样问题的用户可以进行操作.更多win ...

  4. vue webapp滑动事件_js_监听移动端web触屏事件_滑动响应

    直接上我自址哈这工边识框处己按后大都加控不架的例子,以vue比抖朋要插支一圈不者地器享说几应用为例: html: @touchstart="touchstart()" @touch ...

  5. Unity 手机平板触屏,触摸方法的使用

    using System.Collections; using System.Collections.Generic; using UnityEngine;public class TouchTest ...

  6. 移动端事件(touchstart+touchmove+touchend)

    移动端事件有哪些: 触摸事件 手势事件 传感器事件 (后面两个兼容性不怎么样,因此重点就是触摸事件) 触摸事件: touch 事件 pointer 事件 (PC端可能会使用jQuery做动画,移动端一 ...

  7. 移动端的touchstart,touchmove,touchend事件中的获取当前touch位置

    前提:touchstart,touchmove,touchend这三个事件可以通过原生和jq绑定. 原生:document.querySelector("#aa").addEven ...

  8. mobile.php discuz,电脑访问discuz手机版【触屏版跳转标准版的修改方法】

    推荐方法: 以前我们介绍过如何通过修改Chrome浏览器运行参数的方法来模拟手机访问网站,但是在Chrome 32和33版本以后增加了更加便捷的方法,在开发者工具中只需要设置一下就能方便的模拟各种手机 ...

  9. python控制苹果手机触摸屏失灵怎么办_iPhone手机触屏不灵敏怎么办 触屏失灵乱跳等问题解决方法大全必看...

    目前有很多的用户都正在使用苹果iphone iPhone触屏不灵敏怎么办 解决方法一. 解决方法二. 苹果手机触摸屏不灵敏的解决方法二是,强制重启:同时按住iPhone的电源和Home键并保持几秒钟, ...

最新文章

  1. 渣科如何逆袭进阿里 No.137
  2. iPhone地图 实战iPhone GPS定位系统
  3. ubuntu系统下创建软件桌面快捷方式
  4. 《xUnit Test Patterns》学习笔记4 - Principles of Test Automation
  5. 加快战略转型进程:统帅电器挺进年轻用户市场
  6. JSON Perl
  7. 半监督学习入门基础(一)
  8. 树莓派crt安装中文字库和中文输入法
  9. PPT如何设置背景色并应用到全局
  10. Mysql常用技巧总结
  11. 为什么要“推销自己”?
  12. 杂记之视频监控基础之IPCAM
  13. uniapp App跳转微信小程序并互相传递参数、接收微信小程序传递的参数
  14. 五年级下学期计算机课总结,信息技术期末教学总结
  15. 微博开源框架Motan初体验
  16. abaqus Tie python脚本报错 原因令人震惊
  17. c语言报错spawning 插1,Visual C++中error spawning cl.exe错误的两种解决方法.
  18. 自动图片拼贴制作软件:CollageItnbsp;…
  19. 做结构化怎样选择文档类型
  20. Shell脚本学习-阶段二十七-命令解释三

热门文章

  1. 查看数据库(表)的大小(Mysql和Oracle)
  2. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java千益校园帮跑腿信息平台5e9ev
  3. 我要翻译《Think Python》- 006 第四章 学习案例:接口设计
  4. git 命令详解——checkout
  5. 嘉益仕(Litins)再携手南方电网,升级智能仓储管理
  6. win7旗舰版64位台式机装机时发现鼠标键盘失灵
  7. NLP的命名实体识别 -- 嵌套实体问题
  8. android微信升级后还原,安卓微信好友一键恢复靠谱吗,微信一键还原后果
  9. 图像处理之傅里叶变换
  10. cocos2d-iphone之魔塔20层完结篇