[微信小程序]鼠标事件

news/2024/10/18 23:24:14/

微信小程序鼠标事件

事件分类

事件分为冒泡事件和非冒泡事件:
1. 冒泡事件(bind):当一个组件上的事件被触发后,该事件会向父节点传递。
2. 非冒泡事件(catch):当一个组件上的事件被触发后,该事件不会向父节点传递。
bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。

WXML的冒泡事件列表

类型触发条件
touchstart手指触摸动作开始
touchmove手指触摸后移动
touchcancel手指触摸动作被打断,如来电提醒,弹窗
touchend手指触摸动作结束
tap手指触摸后马上离开
longtap手指触摸后,超过350ms再离开

冒泡讲解

<view id="outter" bindtap="handleTap1">outer view<view id="middle" catchtap="handleTap2">middle view<view id="inner" bindtap="handleTap3">inner view</view></view>
</view>

点击inner view后只触发handleTap3,然后再触发handleTap2.不触发handleTap1。
因为handleTap2中的绑定类型是catch,阻止了冒泡事件。

返回对象

BaseEvent 基础事件对象属性列表:

属性类型说明
typeString事件类型
timeStampInteger事件生成时的时间戳
targetObject触发事件的组件的一些属性值集合
currentTargetObject当前组件的一些属性值集合

type

代表事件的类型。

timeStamp

页面打开到触发事件所经过的毫秒数。

target

触发事件的源组件。

属性类型说明
idString事件源组件的id
tagNameString当前组件的类型
datasetObject事件源组件上由data-开头的自定义属性组成的集合
dataset

在组件中可以定义数据,这些数据将会通过事件传递给 SERVICE。 书写方式: 以data-开头,多个单词由连字符-链接,不能有大写(大写会自动转成小写)如data-element-type,最终在 event.currentTarget.dataset 中会将连字符转成驼峰elementType。

示例:
<view data-alpha-beta="1" data-alphaBeta="2" bindtap="bindViewTap"> DataSet Test </view>

Page({bindViewTap:function(event){event.currentTarget.dataset.alphaBeta === 1 // - 会转为驼峰写法event.currentTarget.dataset.alphabeta === 2 // 大写会转为小写}
})

CustomEvent 自定义事件对象属性列表(继承 BaseEvent):

属性类型说明
detailObject额外的信息

detail

自定义事件所携带的数据,如表单组件的提交事件会携带用户的输入,媒体的错误事件会携带错误信息,详见组件定义中各个事件的定义。

点击事件的detail 带有的 x, y 同 pageX, pageY 代表距离文档左上角的距离。

TouchEvent 触摸事件对象属性列表(继承 BaseEvent):

属性类型说明
touchesArray触摸事件,当前停留在屏幕中的触摸点信息的数组
changedTouchesArray触摸事件,当前变化的触摸点信息的数组

touches

touches 是一个数组,每个元素为一个 Touch 对象(canvas 触摸事件中携带的 touches 是 CanvasTouch 数组)。 表示当前停留在屏幕上的触摸点。

Touch 对象
属性类型说明
identifierNumber触摸点的标识符
pageX, pageYNumber距离文档左上角的距离,文档的左上角为原点 ,横向为X轴,纵向为Y轴
clientX, clientYNumber距离页面可显示区域(屏幕除去导航条)左上角距离,横向为X轴,纵向为Y轴

changedTouches

changedTouches 数据格式同 touches。 表示有变化的触摸点,如从无变有(touchstart),位置变化(touchmove),从有变无(touchend、touchcancel)。

特殊事件: <canvas/> 中的触摸事件不可冒泡,所以没有 currentTarget。

bindtap

程序代码

<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>

对应的js

Page({tapName: function(event) {console.log(event)}
})

输出结果

{
"type":"tap",
"timeStamp":895,
"target": {"id": "tapTest","dataset":  {"hi":"WeChat"}
},
"currentTarget":  {"id": "tapTest","dataset": {"hi":"WeChat"}
},
"detail": {"x":53,"y":14
},
"touches":[{"identifier":0,"pageX":53,"pageY":14,"clientX":53,"clientY":14
}],
"changedTouches":[{"identifier":0,"pageX":53,"pageY":14,"clientX":53,"clientY":14
}]
}

可以看到,返回的type是tap
同时在target.id节点中也可以看到 对应的id
在a.target.dataset.hi中也可以找到对应的data-id的值(data-hi → hi)

实际内容以文档为准


http://www.ppmy.cn/news/327684.html

相关文章

css鼠标移入变成小手

1、用css 添加手状样式,鼠标移上去变小手,变小手 cursor:pointer; 2、用JS使鼠标变小手onmouseover(鼠标越过的时候) οnmοuseοver"this.style.cursorhand" cursor其他取值 auto &#xff1a;标准光标 default …

更改Linux鼠标指针大小

现在的笔记本屏幕分辨率都比较高&#xff0c;所以鼠标指针显得有点小。 可以通过以下两种方法更改鼠标指针大小。 sudo apt-get install dconf-tools 打开dconf Editor软件在如下选项中设置即可&#xff1a; /org/gnome/desktop/interface/cursor-size 48 或者在命令行中直接运…

html 中加小手,html中鼠标如何设置显示小手状?

材料/工具&#xff1a;css 1、打开前端开发软件&#xff0c;新建一个html代码页面 2、在新建的html代码页面上找到,在这个标签里创建一个标签&#xff0c;a案例中使用的是 。 代码&#xff1a; 大家好&#xff0c;鼠标放到我身上就可看到效果 3、为新家添加鼠标指针为手指样式。…

(八)CSharp-泛型类和参数约束(1)

一、C# 中的泛型 泛型&#xff08;generic&#xff09;特性可以让多个类型共享一组代码。 泛型类型不是类型&#xff0c;而是类型的模板。 C# 提供了5种类型&#xff1a;类、结构、接口、委托和方法。 泛型类 泛型的主要优点&#xff1a; 性能 类型转换时&#xff0c;非泛型的…

深入理解深度学习——Transformer:基础知识

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; 作为当下最先进的深度学习架构之一&#xff0c;Transformer被广泛应用于自然语言处理领域。它不单替代了以前流行的循环神经网络(recurrent neural network, RNN)和长短期记忆(long short-term memory, …

操作日志解决方案

目录 需求分析解决方案实现步骤需求分析 记录操作日志的优点有以下几点: 追踪问题:操作日志可以记录每一个操作的详细内容和时间,方便在出现问题时对整个过程进行追踪分析,更容易寻找问题的根源。安全审计:操作日志可以提供安全审计依据,以确保系统的安全和合规性,同时也…

加拿大蒙特利尔城市风景高清Mac动态壁纸

蒙特利尔是位于加拿大魁北克省的省面积最大的一座城市&#xff0c;这套蒙特利尔风景壁纸尺寸为5260  3508&#xff0c;蒙特利尔城市是加拿大最重要的经济中心之一&#xff0c;被评为世界最佳留学城市&#xff01;https://mac.orsoon.com/Mac/182283.html

数字平原制作美丽林间小屋风景

数字平原制作美丽林间小屋风景 这次数字平原陈工带来林间小屋的搭建项目&#xff0c;使用Twinmotion 2020来制作环境与小屋&#xff0c;然后再用灯光艺术来表现白天、傍晚、夜晚等环境。那什么是Twinmotion &#xff0c;它能制作什么&#xff1f; Twinmotion 2020是一款建筑装…