前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年08月 微信小程序-view冒泡事件详解

【愚公系列】2022年08月 微信小程序-view冒泡事件详解

作者头像
愚公搬代码
发布2022-09-26 16:17:28
4360
发布2022-09-26 16:17:28
举报
文章被收录于专栏:历史专栏

文章目录


前言

微信小程序事件主要分为冒泡事件和非冒泡事件:

  • 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
  • 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

WXML的冒泡事件列表:

类型

触发条件

最低版本

touchstart

手指触摸动作开始

touchmove

手指触摸后移动

touchcancel

手指触摸动作被打断,如来电提醒,弹窗

touchend

手指触摸动作结束

tap

手指触摸后马上离开

longpress

手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发

1.5.0

longtap

手指触摸后,超过350ms再离开(推荐使用 longpress 事件代替)

transitionend

会在 WXSS transition 或 wx.createAnimation 动画结束后触发

animationstart

会在一个 WXSS animation 动画开始时触发

animationiteration

会在一个 WXSS animation 一次迭代结束时触发

animationend

会在一个 WXSS animation 动画完成时触发

touchforcechange

在支持 3D Touch 的 iPhone 设备,重按时会触发

1.9.90

一、hover-class

属性

类型

默认值

必填

说明

最低版本

hover-class

string

none

指定按下去的样式类。当 hover-class=“none” 时,没有点击态效果

1.0.0

hover-stop-propagation

boolean

false

指定是否阻止本节点的祖先节点出现点击态

1.5.0

hover-start-time

number

50

按住后多久出现点击态,单位毫秒

1.0.0

hover-stay-time

number

400

手指松开后点击态保留时间,单位毫秒

1.0.0

hover-class的冒泡阻止

代码语言:javascript
复制
<view class="section">
	<view hover-class="bc_red" class="section__title">content</view>
</view>

<view class="section">
	<!-- 阻止父节点出现hover状态 -->
	<view hover-class="bc_red" class="section__title">
		parent
		<view hover-stop-propagation hover-class="bc_green" class="section__title">
			child view
		</view>
	</view>
</view>
代码语言:javascript
复制
.bc_red {
  background: red;
  width: 100px;
  height: 120px;
}
.bc_green {
  background: green;
  width: 100px;
  height: 140px;
}

bindtap冒泡事件

代码语言:javascript
复制
<!-- 出现两次打印状态 -->
<view class="section">
	<!-- 阻止父节点出现hover状态 -->
	<view id="parentView" bindtap="onTap" hover-class="bc_red" class="section__title">
		parent
		<view id="childView" bindtap="onTap" hover-stop-propagation hover-class="bc_green" class="section__title">
			child view
		</view>
	</view>
</view>
<!-- 出现一次打印状态 -->
<view class="section">
	<view class="gap">5 示例</view>
	<!-- 阻止父节点出现hover状态,阻止冒泡 -->
	<view id="parentView" bindtap="onTap" hover-class="bc_red" class="section__title">
		parent
		<view id="childView" catchtap="onTap" hover-stop-propagation hover-class="bc_green" class="section__title">
			child view
		</view>
	</view>
</view>
代码语言:javascript
复制
onTap(e){
  console.log(e.target)
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、hover-class
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档