微信小程序事件

news/2024/7/20 2:55:54 标签: 微信小程序, 小程序, 动画

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 设备,重按时会触发

注:除上表之外的其他组件自定义事件如无特殊声明都是非冒泡事件,如 form 的submit事件,input 的input事件,scroll-view 的scroll事件

事件绑定可以是直接写函数字符串,也可以是数据绑定

直接写函数名

<view bindtap="handleTap">
    Click here!
</view>

数据绑定

<view bindtap="{{ handlerName }}">
    Click here!
</view>

此时,页面的 this.data.handlerName 必须是一个字符串,指定事件处理函数名;如果它是个空字符串,则这个绑定会失效(可以利用这个特性来暂时禁用一些事件)。

可以用:bind,catch,mut-bind绑定事件

bind绑定事件会向上冒泡

catch会阻止事件向上冒泡

互斥事件绑定mut-bind绑定事件不会同类型绑定不会冒泡,如父级是其他事件(如bind),会向上冒泡,

事件的捕获

自基础库版本 1.5.0 起,触摸类事件支持捕获阶段,捕获可以采用capture-bindcapture-catch关键字,capture-catch将中断捕获阶段和取消冒泡阶段。(例:capture-bind:touchstart和capture-catch:touchstart

在下面的代码中,点击 inner view 会先后调用handleTap2handleTap4handleTap3handleTap1

<view id="outer" bind:touchstart="handleTap1" capture-bind:touchstart="handleTap2">
  outer view
  <view id="inner" bind:touchstart="handleTap3" capture-bind:touchstart="handleTap4">
    inner view
  </view>
</view>

如果将上面代码中的第一个capture-bind改为capture-catch,将只触发handleTap2

<view id="outer" bind:touchstart="handleTap1" capture-catch:touchstart="handleTap2">
  outer view
  <view id="inner" bind:touchstart="handleTap3" capture-bind:touchstart="handleTap4">
    inner view
  </view>
</view>

event 自定义属性

dataset这些自定义数据以 data- 开头,多个单词由连字符 - 连接。这种写法中,连字符写法会转换成驼峰写法,而大写字符会自动转成小写字符

示例

<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 // 大写会转为小写
  }
})

mark自定义数据,当事件触发时,事件冒泡路径上所有的 mark 会被合并,并返回给事件回调函数

示例:

<view mark:myMark="last" bindtap="bindViewTap">
  <button mark:anotherMark="leaf" bindtap="bindButtonTap">按钮</button>
</view>
Page({
  bindViewTap: function(e) {
    e.mark.myMark === "last" // true
    e.mark.anotherMark === "leaf" // true
  }
})


http://www.niftyadmin.cn/n/740782.html

相关文章

微信小程序屏幕旋转

屏幕旋转设置&#xff0c;支持 auto / portrait / landscape auto自适应 landscape 固定横屏 portrait 固定竖屏 手机设置&#xff0c;在app.json 的 window 段中设置 {"pageOrientation": "auto" } ipad&#xff0c;pc上面设置支持旋转&#xff0c;…

阿里云服务器使用镜像,跨地域、跨账号复制ECS实例 ,搬家,更换服务器

1.创建镜像 2.复制镜像到目标地区&#xff08;需要在同一地区&#xff0c;更换系统时才能使用创建的镜像&#xff09; 3.共享镜像 4.在新服务器上安装镜像 5.将旧服务器安全组复制到新服务器上 接下来跟着我一起操作 第一步&#xff1a;创建镜像 &#xff08;一&#xf…

微信小程序组件的使用

1.创建一个存放组建的文件夹 2.在根目录app.json输入 "component/zj/zj"&#xff0c;然后可在component快速生成所需文件&#xff0c;生成后好后删除 现在我们看看生成好的文件&#xff0c;见下图 3.添加配置"component": true&#xff0c;可将这组文件声…

微信小程序组件样式隔离

Component({options: {styleIsolation: isolated} }) styleIsolation可选参数 isolated 组件和调用页面相互不会影响apply-shared 调用页面样式会影响到组件&#xff0c;但组件的样式不会影响到调用页面shared 组件和页面的样式会相互影响page-isolated 表示在这个页面禁用 …

vue cli4 给文件夹取别名

1.在根目录创建vue.config.js配置文件 添加代码&#xff0c;注意文件夹名不要写错 const path require(path);function resolve(dir) {return path.join(__dirname, dir) }module.exports {publicPath: ./,chainWebpack: config > {config.resolve.alias.set(img,resolv…

mac版 google浏览器安装vue-devtools 插件

1.下载地址 https://gitcode.net/mirrors/vuejs/vue-devtools/-/tree/master 解压得到 2.使用终端进入到文件夹目录内,可以打出cd&#xff0c;然后将文件夹拖入进去&#xff0c;按回车进入 3.查看镜像 cnpm config get registry 如果不是淘宝镜像&#xff0c;更换为淘宝镜像…

vue写购物车点击加减数量,计步器组件

1.可以直接复制代码使用&#xff0c;count.vue组件代码 <template><div class"count"><span class"reduce" click"reduce"></span><input type"number" v-model"num" change"change"…

Mac版eclipse 2022使用javaFx开发项目,环境搭建

1.下载eclipse&#xff0c;下载地址&#xff1a;​​​​​​https://www.eclipse.org/downloads/ 2.下载jdk 下载地址 &#xff1a;https://www.oracle.com/java/technologies/downloads/#jdk17-mac 3. 安装eclipse &#xff08;一&#xff09;选择安装java开发版 &#xff…