事件

官网描述
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html

在小程序中存在两种事件,分别是冒泡事件和非冒泡事件:

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

bind事件

bind事件属于冒泡事件

<view bindtap='bind1'>view1<view bindtap='bind2'>view2</view>
</view>
bind1:function(){console.log("bind1");
},bind2:function(){console.log("bind2");
}

catch事件

catch事件属于非冒泡事件

<view bindtap='bind1'>view1<view catchtap='bind2'>view2</view>
</view>


在同一级中,catch事件会比bind事件先被捕捉

事件的参数,事件默认可以传递一个event对象

这个event对象包含了事件的一些信息

我们还可以在页面上传递一些参数,通过data-*的形式定义要传递的参数

在事件对象中我们也可以发现存在这个数据

获取方式类似于取json中的数据


audio组件

官网描述
https://developers.weixin.qq.com/miniprogram/dev/component/audio.html

下面是一个简单的音频播放演示

<view><audio id='audio1' src='http://183.60.131.111/amobile.music.tc.qq.com/C4000004ketw0EuOct.m4a?guid=7854139360&vkey=02F7452A674443B5000105EAE6B90FA4539CA3780FE43860C9E7571D45F5598CEBCB959BFC44B5F75857CBFEE974423C0CA317F11DB7E148&uin=6148&fromtag=66' loop controls="{{true}}" name="卞夫人" author="星尘" poster="https://y.gtimg.cn/music/photo_new/T002R300x300M000000hMsw84HkGxz_1.jpg?max_age=2592000"></audio>
</view>


当然它本身也可以绑定很多事件,详情见小程序手册,比如下面的播放事件和结束事件,分别是开始播放和播放结束的时候会触发事件。

<view><audio id='audio1' src='http://183.60.131.111/amobile.music.tc.qq.com/C4000004ketw0EuOct.m4a?guid=7854139360&vkey=02F7452A674443B5000105EAE6B90FA4539CA3780FE43860C9E7571D45F5598CEBCB959BFC44B5F75857CBFEE974423C0CA317F11DB7E148&uin=6148&fromtag=66' loop controls="{{true}}" name="卞夫人" author="星尘" poster="https://y.gtimg.cn/music/photo_new/T002R300x300M000000hMsw84HkGxz_1.jpg?max_age=2592000"bindplay="audioplay" bindended="audioend"></audio>
</view>
audioplay:function(){console.log("开始播放");
},audioend:function(){console.log("播放结束");
},

我们还可以通过我们自己创建的按钮实现音乐的各种操作,就需要借助wx.createAudioContext这个接口实现。

官方描述
https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.createAudioContext.html

下面就是通过wx.createAudioContext获取的audio组件,这里是通过audio组件的id获取的对象,然后赋予给当前pages对象中的audioctx(我们自己定义的)。这是在onReady函数中初始化的。


下面是整体的页面布局

audio
<view><audio id='audio1' src='http://183.60.131.111/amobile.music.tc.qq.com/C4000004ketw0EuOct.m4a?guid=7854139360&vkey=02F7452A674443B5000105EAE6B90FA4539CA3780FE43860C9E7571D45F5598CEBCB959BFC44B5F75857CBFEE974423C0CA317F11DB7E148&uin=6148&fromtag=66' loop controls="{{true}}" name="卞夫人" author="星尘" poster="https://y.gtimg.cn/music/photo_new/T002R300x300M000000hMsw84HkGxz_1.jpg?max_age=2592000"bindplay="audioplay" bindended="audioend"></audio>
</view>
<button type="info" bindtap="play">播放</button>
<button type="info" bindtap="pause">暂停</button>
<button type="info" bindtap="play14">从14秒播放</button>
<button type="info" bindtap="start">回到开头</button>


下面是所有按钮的点击事件

play:function(){this.audioctx.play();
},
pause:function(){this.audioctx.pause();
},
play14:function(){this.audioctx.seek(14);
},start:function(){this.audioctx.seek(0);
},

我们还可以通过wx.createInnerAudioContext这个接口实现音频操作

官方描述
https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.createInnerAudioContext.html

下面就是使用示例,这样播放的音乐属于内部播放,这种播放我们可以在页面上完全看不到这个音乐组件,之前上面的播放更适合需要音乐组件的方式。

play:function(){// this.audioctx.play();const innerAudioCtx = wx.createInnerAudioContext();innerAudioCtx.autoplay = true;innerAudioCtx.src = 'http://183.60.131.111/amobile.music.tc.qq.com/C4000004ketw0EuOct.m4a?guid=7854139360&vkey=02F7452A674443B5000105EAE6B90FA4539CA3780FE43860C9E7571D45F5598CEBCB959BFC44B5F75857CBFEE974423C0CA317F11DB7E148&uin=6148&fromtag=66';innerAudioCtx.onPlay(()=>{console.log("播放事件");});
},

movable-area组件

movable-area组件属于可移动控件

官方描述
https://developers.weixin.qq.com/miniprogram/dev/component/movable-area.html
https://developers.weixin.qq.com/miniprogram/dev/component/movable-view.html

下面是一个简单的示例,实现一个简单滑块

<view>movable操作</view>
<movable-area class="area"><movable-view class="view" direction="all" out-of-bounds scale inertia>move</movable-view>
</movable-area>
.area{width: 100%;height: 400rpx;background-color: #CAD3EB;
}
.view{width: 160rpx;height: 160rpx;background-color: green;
}


下面则实现了一种可拖拽可双指缩放的图片展示

<movable-area class="area"><movable-view class="view" direction="all" out-of-bounds scale inertia><image src="/images/LD.jpg"></image></movable-view>
</movable-area>
.area{width: 100%;height: 400rpx;background-color: #CAD3EB;
}.view,image{width: 100%;height: 100%;background-color: green;
}

cover-view组件

官方描述
https://developers.weixin.qq.com/miniprogram/dev/component/cover-view.html

在小程序中存在许多原生组件,如下所示:

  • camera
  • canvas
  • input(仅在focus时表现为原生组件)
  • live-player
  • live-pusher
  • map
  • textarea
  • video

原生组件有诸多限制,其中一个就是原生组件的层级是最高的,所以页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上。

但是通过cover-view组件我们可以实现覆盖在原生组件之上的文本视图。

比如我们的video组件就是原生组件,我们可以通过cover-view组件将一些文本或图片放在它之上,下面就是一个示例,通过点击播放和暂停按钮实现视频的播放和暂停。

<video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400"
class="videoCls" controls loop danmu-btn danmu-list="{{danmuArray}}" enable-danmu><cover-view wx:if="{{playing}}" class="image" bindtap="pause"><cover-image src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=875939727,1815886641&fm=26&gp=0.jpg"></cover-image></cover-view><cover-view wx:else class="image" bindtap="play"><cover-image src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3092528988,4008414166&fm=26&gp=0.jpg"></cover-image></cover-view>
</video>
.videoCls{width: 100%;
}.image{width: 100rpx;height: 100rpx;
}
play:function(){this.setData({playing:true});this.myVideo.play();
},
pause:function(){this.setData({playing:false});this.myVideo.pause();
},
onReady: function () {this.myVideo = wx.createVideoContext('myVideo');
},

微信小程序开发笔记⑤——事件、音频(音乐)组件、movable-area组件和cover-view组件相关推荐

  1. 微信小程序开发笔记 进阶篇③——onfire.js事件订阅和发布在微信小程序中的使用

    文章目录 一.前言 二.onfire.js介绍 三.API介绍 四.实例应用 五.onfire源码 六.实例源码 一.前言 微信小程序开发笔记--导读 二.onfire.js介绍 一个简单实用的事件订 ...

  2. 微信小程序开发笔记(1.1)滚动选择器picker的使用

    微信小程序开发笔记(1.1)滚动选择器picker的使用 前言 滚动选择器picker 普通选择器 多列选择器 时间选择器 日期选择器 省市区选择器 前言 最近被拉来做小程序,因为时间比较赶,其他方面 ...

  3. 微信小程序开发笔记一

    微信小程序开发笔记 一.微信小程序的结构 1.初识小程序 2.快捷键 3.查阅文档 二.常用组件 1.input组件 2.button组件 三.小程序中的函数 1.函数的两种定义方法 2.带参函数 3 ...

  4. 微信小程序开发笔记,你收藏了吗?

    ** 微信小程序开发笔记,你收藏了吗? ** 最近在开发微信小程序,把自己在项目中经常遇到的知识点记录下来,以便下次开发的时候查看. 开发小程序开发工具推荐vscode写代码,微信开发工具用于查看效果 ...

  5. 微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)

    文章目录 一.前言 二.前端代码wxml 三.前端代码js 四.云函数 五.程序流程 一.前言 微信小程序开发笔记--导读 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机号码. 但是,因 ...

  6. 微信小程序开发笔记 进阶篇⑤——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之前)

    文章目录 一.前言 二.前端代码wxml 三.前端代码js 四.后端java 五.程序流程 六.参考 一.前言 微信小程序开发笔记--导读 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机 ...

  7. 微信小程序开发笔记二(WXSS和CSS样式美化)

    微信小程序开发笔记二(WXSS和CSS样式美化) 一.CSS基本知识 1.Class选择器的定义 2.ID选择器的定义 3.ID选择器和class选择器的区别 4.CSS中设置颜色 5.CSS中的文本 ...

  8. 微信小程序开发笔记——wsdchong

    微信小程序开发笔记 一.小程序简介 小程序起源于微信的webview:此类API最初是提供给腾讯内部一些业务使用,很多外部开发者发现后,照葫芦画瓢,逐渐成为微信中网页的事实标准.2015年初,微信发布 ...

  9. 微信小程序开发笔记 进阶篇⑥——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之后)

    文章目录 一.前言 二.前端代码wxml 三.前端代码js 四.后端java 五.程序流程 六.参考 一.前言 微信小程序开发笔记--导读 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机 ...

最新文章

  1. 01-HTML基础与进阶-day6-录像281
  2. R语言包_dplyr_1
  3. flume ng之组件介绍
  4. PAT_B_1060_Java(25分)
  5. 【ZOJ - 3780】Paint the Grid Again(拓扑排序,图论,证明性质)
  6. python单元测试unittest
  7. 金融数据分析与挖掘实战1.4.1-1.4.3
  8. 问世 20 多年的 PHP 还是最好的编程语言吗?
  9. 深度学习2.08.tensorflow的高阶操作之张量排序
  10. 2021最新关于点云配准的全面综述
  11. java常量池在哪里_java常量池在哪?有什么用处?
  12. oracle 运维入门,Oracle日常基本运维命令及基本体系结构
  13. 渔业公司宣传片制作技巧
  14. 安装CocoaPods出现错误解决方法
  15. 如何下载网页中的图片
  16. 计算机安全原理与实践第三版答案,计算机安全: 原理与实践 : 第3版
  17. 论文阅读笔记:看完也许能进一步了解Batch Normalization
  18. 计算机话筒技术指标,手把手教你搞懂麦克风的技术指标
  19. 【破解利器】PE工具篇(PE编辑,查看等操作)
  20. 【MySQL报错】1366 - Incorrect string value: ‘\xE6\x80\xBB\xE7\xBB\x8F...‘ for column ‘name‘ at row 1

热门文章

  1. OpenGL开发关于VAO和VBO的理解
  2. php x20有啥用,用了就回不去的全面屏手机功能?vivo X20系统使用亮点解析
  3. unity-shader-深度图及其应用
  4. 西财计算机考研分数,2018西财考研复试常见问题解答
  5. 展示演示软件设计制作(C语言)
  6. 算法为何重要(《数据结构与算法图解》by 杰伊•温格罗)
  7. 时代新职业培育:从微软谷歌到阿里猎豹们的“卡位战”
  8. 23种设计模式以及关联关系
  9. 柯理化、mergeOptions、new的实现原理、reduce、flat
  10. 1192: [HNOI2006]鬼谷子的钱袋