【Web APIs】JavaScript touch 触摸事件 ① ( touchstart 触摸开始事件 | touchmove 触摸移动事件 | touchend 触摸结束事件 )

【Web APIs】JavaScript touch 触摸事件 ① ( touchstart 触摸开始事件 | touchmove 触摸移动事件 | touchend 触摸结束事件 )

文章目录




一、JavaScript touch 触摸事件


touchstart、touchmove、touchend 事件是 JavaScript 专为支持 触摸操作 的 移动设备( 手机、平板等 ) 设计的核心触摸事件, 用于 监听用户的触摸行为 , 构成了 完整的 触摸生命周期 ;

1、 touchstart 触摸开始事件

touchstart 触摸开始事件 :

  • 核心定义 : 在 用户的手指首次接触到触摸 设备屏幕 ( 或指定触摸元素 ) 的瞬间, 立即触发该事件 ,标志着一次触摸行为的正式开始;
  • 关键特性 : 每个触摸点( 单手指 / 多手指 ) 仅 触发一次( 手指保持接触时不会重复触发 ) ;
  • 常用场景 :
    • 初始坐标 :记录触摸的初始坐标, 为后续判断滑动方向做准备 ;
    • 触摸激活 :触发元素的 触摸激活状态, 如按钮按下时的高亮样式 ;
    • 初始触摸 :初始化 手写板、画布涂鸦等 触摸相关业务逻辑 ;

2、touchmove 触摸移动事件

touchmove 触摸移动事件 :

  • 核心定义 : 当用户的手指保持 与 屏幕 接触状态 并 发生位置移动 时, 会持续、高频触发该事件, 直到手指停止移动 或 离开屏幕 ;
  • 关键特性 : 移动过程中连续触发, 触发频率 由 设备性能、手指移动速度 决定 , 事件对象会实时更新触摸点的当前位置 ;
  • 常用场景 :
    • 滑动交互 : 实现 滑动交互 , 如 轮播图左右滑动、下拉刷新、侧边栏拖拽 ;
    • 实时绘制 : 手写板 轨迹跟随、涂鸦创作 ;
    • 触摸跟随 : 如 悬浮按钮 随手指移动 ;

3、touchend 触摸结束事件

touchend 触摸结束事件 :

  • 核心定义 : 当用户的手指从屏幕上抬起 ( 完全离开触摸区域 ) 的 瞬间, 触发该事件 , 标志着一次触摸行为的结束 ;
  • 关键特性 :每个 触摸点 仅 触发一次, 事件对象中仍可获取该触摸点离开前的最后位置信息 ;
  • 常用场景 :
    • 结束滑动 :结束 滑动逻辑 并判断 滑动结果, 如 : 轮播图滑动后定位到目标页面 ;
    • 保存结果 : 保存 手写绘制、涂鸦 的最终内容 ;
    • 恢复状态 :恢复 元素 的 初始状态, 如 : 按钮抬起后取消高亮 ;
    • 触发回调 :触发 触摸结束 后的 业务回调 , 如 : 滑动完成后的数据加载 ;




二、代码示例 - touch 触摸事件



1、代码示例

代码示例 :

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metahttp-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. 获取元素// 声明一个变量 div , 用于存储获取到的页面元素 , 在整个文档中查询并获取第一个匹配的<div>标签元素 , 将其赋值给变量divvar div = document.querySelector('div');// 2. 手指触摸事件 , 为获取到的 div 元素添加事件监听器 , 监听触摸开始事件 ( touchstart )  div.addEventListener('touchstart',function(){ console.log('touchstart 开始触摸');});// 3. 手指移动事件 , 为获取到的 div 元素添加事件监听器 , 监听触摸移动事件 ( touchmove )  div.addEventListener('touchmove',function(){ console.log('touchmove 触摸移动');});// 4. 手指离开事件 , 为获取到的 div 元素添加事件监听器 , 监听触摸结束事件 ( touchend )  div.addEventListener('touchend',function(){ console.log('touchend 抬起手指');});</script></body></html>

2、执行结果

执行结果 :

进入界面后 , 如果是 Web 模式 , 此时 是 无法触发 触摸事件 的 , 当前状态是 " 普通桌面浏览模式 " , 此时 无法触发 触摸事件 ;

在这里插入图片描述

点击上图的 红色矩形框 中的 " Toggle device toolbar " 按钮 , 也可以使用 Ctrl + Shift + M 快捷键 , 快速切换 " 设备模拟模式 " 与 " 普通桌面浏览模式 " , 下面是 切换为 " 设备模拟模式 " 状态 ;

在这里插入图片描述

触摸事件 完整执行结果 ;

在这里插入图片描述

Read more

Java 大视界 -- Java 大数据在智能家居设备联动与场景化节能中的应用拓展(413)

Java 大视界 -- Java 大数据在智能家居设备联动与场景化节能中的应用拓展(413)

Java 大视界 -- Java 大数据在智能家居设备联动与场景化节能中的应用拓展(413) * 引言: * 正文: * 一、技术基石:Java 大数据赋能智能家居的 “三位一体” 架构 * 1.1 架构全景图 * 1.2 核心技术栈选型与生产配置(附数据出处) * 1.3 核心数据模型(POJO 类,附表结构与业务含义) * 1.3.1 设备状态实体类(对应 ClickHouse 实时表) * 1.3.2 联动规则实体类(对应 MySQL 配置表) * 1.3.3 缺失工具类补充:SpringContextUtil(生产必用) * 二、核心场景 1:

(3-2)机器人身体结构与人体仿生学:人形机器人躯干系统

(3-2)机器人身体结构与人体仿生学:人形机器人躯干系统

3.2  人形机器人躯干系统 躯干是人形机器人的核心支撑与功能集成单元,承担连接四肢、容纳核心部件(电池、控制器、传感器)、传递运动力矩及维持动态平衡的多重使命。其设计需在人体仿生学(如脊柱运动特性、躯干质量分布)与工程实现(结构刚度、驱动效率、空间利用率)之间找到最优平衡,直接决定机器人的运动协调性、负载能力与运行稳定性。 3.2.1  躯干结构方案 人形机器人躯干结构如图3-6所示,躯干是连接四肢、承载核心部件(电池、控制器、传感器)并传递运动力矩的关键载体,其结构设计的核心矛盾是刚度与灵活性的平衡、集成效率与维护便捷性的取舍。 图3-6  人形机器人躯干的结构 当前工程领域形成了三类主流方案,均围绕“仿生适配+工程落地”展开,具体设计特性与适用场景如下。 1. 一体化结构方案 (1)设计逻辑: 以“极致刚性与结构稳定性”为核心,采用整体式无拆分框架,通过高性能复合材料一体成型工艺,

openclaw喂饭教程!在 Linux 环境下快速完成安装、初始化与 Web UI 配置

openclaw喂饭教程!在 Linux 环境下快速完成安装、初始化与 Web UI 配置

前言 OpenClaw 是一款开源的 AI Agent 工具,但对第一次接触的用户来说,完整跑通流程并不直观。本文以 Linux 环境为例,详细记录了 OpenClaw 的安装、初始化流程、模型选择、TUI 使用方式,以及 TUI 与 Web UI 认证不一致导致的常见问题与解决方法,帮助你最快速度把 OpenClaw 真正跑起来 环境准备 1)安装nodejs curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs > node

SpringBoot+Vue 农商对接系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

SpringBoot+Vue 农商对接系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

摘要 随着乡村振兴战略的深入推进,农产品产销对接成为促进农村经济发展的关键环节。传统农商对接模式存在信息不对称、交易效率低、资源整合不足等问题,亟需通过数字化手段构建高效、透明的对接平台。农商对接系统平台旨在整合农产品生产端与销售端资源,通过线上化交易流程降低中间成本,提升农产品流通效率。该系统聚焦于解决小农户与大市场之间的连接难题,为农产品供需双方提供精准匹配、订单管理、物流跟踪等一站式服务。关键词:乡村振兴、农产品产销、数字化平台、资源整合、供需匹配。 该系统基于SpringBoot+Vue的前后端分离架构开发,后端采用SpringBoot框架实现RESTful API接口,提供用户管理、商品管理、订单管理、数据分析等功能模块。前端使用Vue.js框架构建响应式界面,结合Element UI组件库提升用户体验。数据库采用MySQL存储结构化数据,通过Redis缓存高频访问数据以提升系统性能。系统支持多角色权限控制(农户、采购商、管理员),并集成第三方支付接口与物流查询接口,实现交易闭环。关键词:SpringBoot、Vue.js、MySQL、权限控制、接口集成。 数据表结构说