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

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

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

落日余晖发布于 2026/3/26更新于 2026/9/649 浏览
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 http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Touch 触摸事件</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. 调试注意事项

更多推荐文章

查看全部
  • RoboChallenge 发布具身智能年度报告:4 万次真机评测揭示模型真实水平
  • 深度学习卷积神经网络(CNN)实战应用
  • TongWeb 通道参数 maxQueueSize 与 acceptCount 的含义及关系
  • Agentic RAG 登场:RAG 技术的进化之路
  • Ubuntu 24.04 深度学习环境配置:NVIDIA 驱动与 CUDA 安装验证
  • Linux 手动部署并测试内网穿透
  • LocalAI 本地推理引擎:不用 GPU 也能跑大模型
  • FunASR 离线文件转写服务开发与部署实战
  • SBUS 协议原理与实战:无人机航模机器人通信方案
  • Soft Actor-Critic (SAC) 算法详解与 PyTorch 实现
  • Web 自动化测试实战:常用函数全解析与场景化应用
  • C 语言快速排序详解与多种优化变式
  • WhisperX 快速上手指南:基于 OpenAI Whisper 的语音识别工具
  • ChatGPT 结构化 Prompt 高级应用
  • 6GB 显存部署腾讯混元 Image-2.1 GGUF 版实现 2K 生图
  • 论文解读:利用人类反馈训练语言模型遵循指令
  • Stable Diffusion 模型下载工具实战指南
  • BFS 实现拓扑排序:原理与 LeetCode 实战
  • Spring Boot 3.x 新特性解析:Java 17 支持与 GraalVM 原生镜像
  • AI 大模型 40 年发展历程与未来统一趋势研究

相关免费在线工具

  • 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