全栈开发工程师微信小程序-中

多媒体及其他的组件

navigator
页面链接

target 在哪个目标上发生跳转,默认当前小程序,可选值self/miniProgram
url 当前小程序内的跳转链接
open-type 跳转方式
delta 当 open-type 为 'navigateBack' 时有效,表示回退的层数
app-id 当target="miniProgram"时有效,要打开的小程序 appId
path 当target="miniProgram"时有效,打开的页面路径,如果为空则打开首页
extra-data 当target="miniProgram"时有效,需要传递给目标小程序的数据,目标小程序可在 App.onLaunch(),App.onShow() 中获取到这份数据
hover-class 指定点击时的样式类,当hover-class="none"时,没有点击态效果
hover-stop-propagation 指定是否阻止本节点的祖先节点出现点击态
hover-start-time 按住后多久出现点击态
hover-stay-time 手指松开后点击态保留时间
bindsuccess 当target="miniProgram"时有效,跳转小程序成功
bindfail 当target="miniProgram"时有效,跳转小程序失败

navigator是页面链接组件,等于html中的a标签.

<view class="btn"><navigator url="navigator?title=navigate" open-type="navigate" hover-class="navigator-hover"><button type="default">新窗口打开</button></navigator><navigator url="navigator?title=redirect" open-type="redirect" hover-class="navigator-hover"><button type="default">在当前页打开</button></navigator><navigator url="navigator" open-type="switchTab" hover-class="navigator-hover"><button type="default">切换tab</button></navigator><navigator url="navigator?title=reLaunch" open-type="reLaunch" hover-class="navigator-hover"><button type="default">重启打开</button></navigator><navigator delta="1" open-type="navigateBack"><button type="default">返回页面</button></navigator>
</view>
// delta    Number      当 open-type 为 'navigateBack' 时有效,表示回退的层数
<navigatorurl="/page/navigate/navigate?title=navigate"hover-class="navigator-hover">跳转到新页面</navigator>
<navigatorurl="../../redirect/redirect/redirect?title=redirect"open-type="redirect"hover-class="other-navigator-hover">在当前页打开</navigator>
<navigatortarget="miniProgram"open-type="navigate"app-id=""path=""extra-data=""version="release">打开绑定的小程序</navigator>

每个open-type都有默认的url属性,open-typenavigateBack时,url无效,delta的属性表示为反退,默认是1.

导航接口

wx.navigateTo(OBJECT):
跳转到新页面时保留当前页面wx.redirectTo(OBJECT):
关闭当前页面,跳转到新页面wx.switchTab(OBJECT):
跳转tabBar页面wx.navigateBack(OBJECT):
关闭当前页面,返回上一级页面或多级页面wx.reLaunch(OBJECT):
关闭所有页面
wx.navigateTo({url: 'newpage?id=1',success:res => {},fail:err => {},complete:_ => {}
})wx.redirectTo({url: 'otherpage?id=1',success:res => {},fail:err => {},complete:_ => {}
})wx.switchTab({url: '/index',success:res => {},fail:err => {},complete:_ => {}
})wx.navigateBack({delta: 1
})wx.reLaunch({url: 'homepage',success:res => {},fail:err => {},complete:_ => {}
})

audio组件

是音频组件

id   audio 组件的唯一标识符
src 要播放音频的资源地址
loop 是否循环播放
controls 是否显示默认控件
poster 默认控件上的音频封面的图片资源地址
name 默认控件上的音频名字
author 默认控件上的作者名字

<audioposter="{{poster}}"name="{{name}}"author="{{author}}"src="{{src}}"id="myAudio"controlsloop
></audio><button type="primary" bindtap="audioPlay">播放</button>
<button type="primary" bindtap="audioPause">暂停</button>
<button type="primary" bindtap="audio14">设置当前播放时间为14秒</button>
<button type="primary" bindtap="audioStart">回到开头</button>
// audio.js
Page({onReady(e) {// 使用 wx.createAudioContext 获取 audio 上下文 contextthis.audioCtx = wx.createAudioContext('myAudio')},data: {poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000',name: '此时此刻',author: '许巍',src: 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46',},audioPlay() {this.audioCtx.play()},audioPause() {this.audioCtx.pause()},audio14() {this.audioCtx.seek(14)},audioStart() {this.audioCtx.seek(0)}
})

audio为音频标签,poster属性代表默认控件上音频封面图片地址,name代表控件上的音频名字,author代表默认控件上的作者名字,controls代表是否显示默认控件,src要播放音频资源地址,loop是否循环.idaudio组件的唯一标识.

onReady函数,wx.createAudioContext接口,音频对象audioCtx,对象存储在this对象上.

AudioContext对象是和audio组件进行绑定的.wx.createAudioContext接口.

this.audioCtx = wx.createAudioContext('myAudio')

image
图片

src 图片资源地址
mode 图片裁剪、缩放的模式
lazy-load 图片懒加载

https://developers.weixin.qq.com/miniprogram/dev/component/image.html
// mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式。
缩放  scaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素缩放  aspectFit   保持纵横比缩放图片,可以完整地将图片显示出来缩放 aspectFill  保持纵横比缩放图片,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取

video
视频

src 要播放视频的资源地址
initial-time 指定视频初始播放位置
duration 指定视频时长
controls 是否显示默认播放控件
danmu-list 弹幕列表
danmu-btn 是否显示弹幕按钮,只在初始化时有效,不能动态变更
enable-danmu 是否展示弹幕,只在初始化时有效,不能动态变更
autoplay 是否自动播放
loop 是否循环播放
muted 是否静音播放
page-gesture 在非全屏模式下,是否开启亮度与音量调节手势
direction 设置全屏时视频的方向
show-fullscreen-btn 是否显示全屏按钮
show-play-btn 是否显示视频底部控制栏的播放按钮
show-center-play-btn 是否显示视频中间的播放按钮
enable-progress-gesture 是否开启控制进度的手势

// 主要
src: 要播放视频的资源地址
duration: 指定的视频时长
controls: 是否显示默认播放控件
danmu-list: 弹幕列表
danmu-btn: 是否显示弹幕按钮
enable-danmu: 是否展示弹幕
autoplay: 是否自动播放
loop: 是否循环播放
muted: 是否静音

案例:

<video src="{{src}}" controls></video><videoid="myVideo"src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400"danmu-list="{{danmuList}}"enable-danmudanmu-btncontrols></video>

camera
系统相机

扫码二维码功能,需升级微信客户端至6.7.3

案例:

<cameradevice-position="back"flash="off"binderror="error"style="width: 100%; height: 300px;"
></camera><view>预览</view>
<image mode="widthFix" src="{{src}}"></image>// camera.js
Page({takePhoto() {const ctx = wx.createCameraContext()ctx.takePhoto({quality: 'high',success: (res) => {this.setData({src: res.tempImagePath})}})},error(e) {console.log(e.detail)}
})

地图

map
地图

latitude: 代表中心纬度
longitude: 代表中心经度
markers: 标记点数组
circles: 在地图上显示圆圈所使用的数据,是一个数组
scale: 缩放级别
polyline: 用两个以上的坐标点
show-location: 显示带有方向的当前定位点
include-points: 缩放视野需要包含的精卫坐标点

注意: covers 属性即将移除,请使用 markers 替代

markers
标记点用于在地图上显示标记的位置

<!-- map.wxml -->
<mapid="map"longitude="113.324520"latitude="23.099994"scale="14"controls="{{controls}}"bindcontroltap="controltap"markers="{{markers}}"bindmarkertap="markertap"polyline="{{polyline}}"bindregionchange="regionchange"show-locationstyle="width: 100%; height: 300px;"
></map>
// markers元素
id: 标记点id
latitude: 纬度
longitude: 经度
title: 标注点
iconPath: 显示图标路径
alpha: 标注的透明度
label: 为标记点旁边增加标签
// circles
latitude: 纬度
longitude: 经度
color: 描边的颜色
fillColor: 填充颜色
radius: 半径
strokeWidth: 描边的宽度
points: 经纬度数组
color: 线的颜色
width: 线的宽度
arrowLine: 是否带箭头
borderColor: 线的边框颜色
borderWidth: 线的厚度

画布

canvas作用实现基本的二维几何图形.

canvas-id canvas 组件的唯一标识符
disable-scroll 当在 canvas 中移动时且有绑定手势事件时,禁止屏幕滚动以及下拉刷新
bindtouchstart 手指触摸动作开始
bindtouchmove 手指触摸后移动
bindtouchend 手指触摸动作结束
bindtouchcancel 手指触摸动作被打断
bindlongtap 手指长按 500ms 之后触发
binderror 当发生错误时触发 error 事件

案例:

<canvas style="width: 300px; height: 200px;" canvas-id="firstCanvas"></canvas><canvas style="width: 400px; height: 500px;" canvas-id="secondCanvas"></canvas><canvasstyle="width: 400px; height: 500px;"canvas-id="secondCanvas"binderror="canvasIdErrorCallback"
></canvas>onReady(e) {// 使用 wx.createContext 获取绘图上下文 contextconst context = wx.createCanvasContext('firstCanvas')context.setStrokeStyle('#00ff00')context.setLineWidth(5)context.rect(0, 0, 200, 200)context.stroke()context.setStrokeStyle('#ff0000')context.setLineWidth(2)context.moveTo(160, 100)context.arc(100, 100, 60, 0, 2 * Math.PI, true)context.moveTo(140, 100)context.arc(100, 100, 40, 0, Math.PI, false)context.moveTo(85, 80)context.arc(80, 80, 5, 0, 2 * Math.PI, true)context.moveTo(125, 80)context.arc(120, 80, 5, 0, 2 * Math.PI, true)context.stroke()context.draw()}

如果看了觉得不错

点赞!转发!

达叔小生:往后余生,唯独有你
You and me, we are family !
90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通
简书博客: 达叔小生
https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

全栈开发工程师微信小程序-中相关推荐

  1. 全栈开发工程师微信小程序-上(中)

    全栈开发工程师微信小程序-上(中) width: 750rpx; 复制代码 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位 ...

  2. 全栈开发工程师微信小程序 - 上

    全栈开发工程师微信小程序-上 实现swiper组件 swiper 滑块视图容器. indicator-dots 是否显示面板指示点 false indicator-color 指示点颜色 indica ...

  3. 全栈开发工程师微信小程序-上

    全栈开发工程师微信小程序-上 实现swiper组件 swiper 滑块视图容器. indicator-dots 是否显示面板指示点 false indicator-color 指示点颜色 indica ...

  4. python相关职业-浅谈Python全栈开发工程师,让程序员都眼红的职业!

    原标题:浅谈Python全栈开发工程师,让程序员都眼红的职业! Python Python 的排名从去年开始就借助人工智能与独特的魅力持续上升,现在它已经成为了第一名. 与其它编程语言相比所占的优势 ...

  5. python全栈开发工程师招聘_浅谈Python全栈开发工程师,让程序员都眼红的职业!...

    若把学C/C++难度比作做冰箱设计师,那么Java就是公司做冰箱的工人,而Python就是使用冰箱的客户.这只是难度的比较,那么就有人要说Python肯定很弱了,是真的如此吗? 领域--------流 ...

  6. 记一次在Taro开发的微信小程序中使用lottie动画的经验

    前景提要 最近在做公司项目的时候,看到移动端开发用的小图标有动态效果,非常好玩了解到是使用lottie进行实现的,这个东西以前有看到过对应的插件库,但是一直没有时间做研究,趁着这个五一就抽一天时间,去 ...

  7. 7.4【微信小程序全栈开发课程】小程序上线--基于Ubuntu搭建小程序运行环境

    上一节我们安装了nginx和SSL证书,这一节继续来搭建小程序运行环境 1.配置nodeJs环境 (1)安装node.npm 我们云服务器是Ubuntu系统,通过apt-get安装即可 //下载nod ...

  8. 微信小程序云开发--实现微信小程序中访问外部h5网页

    小程序中需要在一些位置添加广告,链接到外部的h5网页. 整体实现思路:定义一个广告组件,一个用来展示外部网页的page outUrl, 在组件中使用wx.navigateTo()等跳转到页面outUr ...

  9. python有趣小程序-Python全栈开发-有趣的小程序

    进度条的打印 import sys,time for i in range(20): sys.stdout.write('$') #stdout是标准输出的意思,在一般电脑上,stdout的标准输出指 ...

  10. 浅谈Python全栈开发工程师, 让程序员都眼红的职业!

    Python Python 的排名从去年开始就借助人工智能与独特的魅力持续上升,现在它已经成为了第一名. 与其它编程语言相比所占的优势 (私信小编001 .002 .003 .007任何一个即可自动获 ...

最新文章

  1. 用FIO测试存储性能
  2. tsconfig.json配置
  3. c#中使用openssl
  4. 8备份sqlserver_关于SQL server 巡检的要点你都知道吗?
  5. UVA 11093 Just Finish it up 环形跑道 (贪心)
  6. 网络扫描 : nbtscan
  7. 漫话中文分词和语义识别(下):句法结构和语义结构
  8. KEIL环境中添加宏定义方法
  9. 胡乱翻译Apache Ignite(一)
  10. C++基于libxls库读取xls文件
  11. python idle怎么保存_Word文档如何设置自动保存
  12. 基于入侵杂草和花授粉混合算法的WSN节点部署优化
  13. C# winform抽拉式菜单栏设计的一种方法
  14. 基金股市理财经验分享(个人体会)
  15. SCI论文写作辅助利器-知云文献翻译
  16. mysql数据被截断_Mysql5.7中使用groupconcat函数数据被截断的问题完美解决方法
  17. 关于seekbar的thumb被截取的问题
  18. DXVA 处理交错视频
  19. 【Unity】获取当前物体下的所有子物体
  20. 雕刻机主轴电机拆卸步骤方法

热门文章

  1. VR终极入门指南:设备,内容,手机...都在这里了|深扒
  2. 手机版支付宝html页面,支付宝手机网页支付代码
  3. 如何在vue中插入语音提示
  4. IMAP常用命令汇总
  5. 学习GIT的一个小游戏
  6. Tafel 曲线绘制
  7. python找不同_用Python玩大家来找茬
  8. linux ftp中文乱码方块,ubuntu14.04下手工编译texmacs,解决中文显示为方块及输入法问题...
  9. 一文读懂:DNA甲基化的作用及各种高通量检测方法比较
  10. 2018.08.17 洛谷P3110 [USACO14DEC]驮运(最短路)