跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScriptReact Native大前端

JavaScript 触摸事件详解:touchstart、touchmove 与 touchend 实战

JavaScript 中的 touchstart、touchmove 和 touchend 是构建移动端交互的核心事件。touchstart 记录初始坐标,touchmove 处理滑动轨迹,touchend 判断结束状态。在桌面端调试时需注意开启设备模拟模式才能触发真实触摸行为,否则仅能响应鼠标事件。掌握这三个事件是开发移动端交互逻辑的基础。

落日余晖发布于 2026/3/26更新于 2026/10/2277 浏览
JavaScript 触摸事件详解:touchstart、touchmove 与 touchend 实战

JavaScript 触摸事件概述

touchstart、touchmove 和 touchend 是专为移动设备设计的核心触摸事件,用于监听用户的触摸行为。它们构成了完整的触摸生命周期,在移动端交互开发中至关重要。

touchstart 触摸开始事件

触发时机: 当用户的手指首次接触到屏幕(或指定元素)的瞬间立即触发,标志着一次触摸行为的正式开始。

关键特性:

  • 每个触摸点仅触发一次,手指保持接触时不会重复触发。
  • 适合记录初始坐标,为后续判断滑动方向做准备。

常用场景:

  • 初始化手写板、画布涂鸦等业务逻辑。
  • 触发元素的触摸激活状态,例如按钮按下时的高亮样式。

touchmove 触摸移动事件

触发时机: 当用户的手指保持与屏幕接触并发生位置移动时,会持续高频触发该事件,直到手指停止移动或离开屏幕。

关键特性:

  • 移动过程中连续触发,频率由设备性能和手指移动速度决定。
  • 事件对象会实时更新触摸点的当前位置。

常用场景:

  • 实现滑动交互,如轮播图左右滑动、下拉刷新、侧边栏拖拽。
  • 实时绘制轨迹跟随、涂鸦创作。
  • 悬浮按钮随手指移动等跟随效果。

touchend 触摸结束事件

触发时机: 当用户的手指从屏幕上抬起(完全离开触摸区域)的瞬间触发,标志着一次触摸行为的结束。

关键特性:

  • 每个触摸点仅触发一次,事件对象中仍可获取该触摸点离开前的最后位置信息。

常用场景:

  • 结束滑动逻辑并判断结果,如轮播图滑动后定位到目标页面。
  • 保存手写绘制或涂鸦的最终内容。
  • 恢复元素的初始状态,如按钮抬起后取消高亮。
  • 触发触摸结束后的业务回调,例如滑动完成后的数据加载。

代码示例

以下是一个基础示例,演示如何监听这三个事件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta = =>
    Touch 触摸事件
    


    
    


http-equiv
"X-UA-Compatible"
content
"ie=edge"
<title>
</title>
<style>
div { width: 200px; height: 200px; background-color: pink; }
</style>
</head>
<body>
<div>
</div>
<script>
// 1. 获取元素 var div = document.querySelector('div'); // 2. 监听触摸开始事件 div.addEventListener('touchstart', function() { console.log('touchstart 开始触摸'); }); // 3. 监听触摸移动事件 div.addEventListener('touchmove', function() { console.log('touchmove 触摸移动'); }); // 4. 监听触摸结束事件 div.addEventListener('touchend', function() { console.log('touchend 抬起手指'); });
</script>
</body>
</html>

调试注意事项

在桌面浏览器中测试时,默认处于普通浏览模式,无法直接触发触摸事件。需通过开发者工具切换至设备模拟模式(快捷键 Ctrl + Shift + M),模拟真实移动设备的触摸环境,否则控制台将不会输出任何日志。

目录

  1. JavaScript 触摸事件概述
  2. touchstart 触摸开始事件
  3. touchmove 触摸移动事件
  4. touchend 触摸结束事件
  5. 代码示例
  6. 调试注意事项

更多推荐文章

查看全部
  • SkyWalking - .NET / C++ / Lua 探针现状与社区支持
  • Java 后端 Web API 开发实战:从架构到部署
  • 本地运行 Llama3 极简教程
  • MySQL 数据库核心操作:创建、修改、备份与连接排查
  • ShopXO 开源电商系统完整部署指南
  • 企业为何需要私有化专属大模型:从 ChatGPT 到私有化部署
  • AI Agent 入门与 Coze 零代码搭建实战指南
  • AI 助力六花直装 V8.3.9 自动化开发与测试
  • Stable Diffusion 模型加载错误修复指南
  • GitHub Copilot Pro 学生免费获取与 VS Code 配置指南
  • Linux du 命令详解:精准探查文件和目录的磁盘占用
  • 产品经理 AI 学习地图:从入门到精通的完整指南
  • 数据结构:红黑树
  • Android 自学指南:从入门到大厂的技术成长路线
  • Next Greater Element I 问题解析与实现
  • C++ 基础:链表、缓冲区与指针概念
  • 大模型如何重塑世界:百度创始人李彦宏演讲核心观点
  • VMware 虚拟机安装 CentOS 并部署 OpenClaw
  • BaseCTF Week3 Web & Misc 解题复盘
  • C++ 高频面试考点:语言基础与预处理

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online