【微信小程序开发小白零基础入门】微信小程序界面API详解学习笔记【建议收藏】

简介: 文章目录【微信小程序开发小白零基础入门】微信小程序界面API【建议收藏】一、 交互反馈1. 消息提示框1.1.1 显示消息提示框1.1.2 关闭消息提示框2. 加载提示框2.2.1 显示加载提示框2.2.2 关闭加载提示框3. 模态弹窗4. 操作菜单二、 导航条设置2.1 当前页面标题设置2.2 导航条加载动画2.3 导航条颜色设置三、 tabBar设置3.1 tabBar标记3.1.1 设置tabBar标记3.1.2 移除tabBar标记3.2 tabBar红点3.2.1 显示tabBar红点3.2.2 隐藏tabBar红点3.3 onTabIte文章目录【微信小程序开发小白零基础入门】微信

文章目录

一、 交互反馈

1. 消息提示框

小程序使用wx.showToast(OBJECT)显示消息提示框,OBJECT参数说明如表所示62155f25350f8a7dee74a0bf4b4c863.png

1.1.1 显示消息提示框

icon有效值说明如下: 、success:icon默认值,用于显示成功图标,title文本最多显示 7 个汉字长度; 2、loading:显示加载图标,此时 title 文本最多显示 7 个汉字长度; 3、none:不显示图标,此时 title 文本最多可显示两行(最低版本1.9.0)。a56706fca3da409ebfab0cb754b513a3.png

js文件

 data: {
  },
  showToast: function () {
    wx.showToast({
      title: '智慧云工具箱',
      duration: 70000
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>(1) 显示消息提示框</view>
      <button type="primary" bindtap="showToast">显示Toast</button>
    </view>

5c9432532274451a97e6baf521ff413b.pngbed959c63d4f441492ed214d486d5679.png

1.1.2 关闭消息提示框

虽然消息提示框可以在指定时间后自动消失,小程序也可以使用wx.hideToast()提前关闭消息提示框。

a56706fca3da409ebfab0cb754b513a3.png

js文件

  hideToast: function () {
    wx.hideToast()
  },
<font color=#999AAA >json文件
```javascript
{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>(2) 关闭消息提示框</view>
      <button type="primary" bindtap="hideToast">关闭Toast</button>
    </view>
  </view>

cc6115d3c166482688127a887ee5907a.pnga7aa7c3b5c2945a3835a5dd4ecc4e62d.png

2. 加载提示框

2.2.1 显示加载提示框

小程序使用wx.showLoading(OBJECT)显示loading提示框,该接口从基础库 1.1.0 开始支持,低版本需做兼容处理。其OBJECT参数说明如表所示983952b19bf2d64321c5dd6e4770d8a.png注:这种提示框不会自动消失,需主动调用 wx.hideLoading 才能关闭提示框。

a56706fca3da409ebfab0cb754b513a3.png

js文件

  showLoading: function () {
    wx.showLoading({
      title: '智慧云工具箱!'
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

<view class='demo-box'>
      <view class='title'>(1) 显示加载提示框</view>
      <button type="primary" bindtap="showLoading">显示Loading</button>
    </view>

290c268e21fa43d8a57e39655c1db916.png0d0ecc6bef74415aacf336749aa935bd.png

2.2.2 关闭加载提示框

小程序使用wx.hideLoading()关闭loading 提示框,该接口从基础库 1.1.0 开始支持,低版本需做兼容处理。

a56706fca3da409ebfab0cb754b513a3.png

js文件

  hideLoading: function () {
    wx.hideLoading()
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

<view class='demo-box'>
      <view class='title'>(2) 关闭加载提示框</view>
      <button type="primary" bindtap="hideLoading">关闭Loading</button>
    </view>

7061122827bc416c8c8c25d3ebd0e648.pngb4c31b40efb24da49c08c2a4b7325722.png

3. 模态弹窗

小程序使用wx.showModal(OBJECT)显示模态弹窗,其OBJECT参数说明如表所示。5c6d72560a60ea07640ae2601193d3c.png其中success返回参数说明如表所示。a6fadf0fe718a3271d53b8ce418c2b6.pnga56706fca3da409ebfab0cb754b513a3.png

js文件

  showModal1:function(){
    wx.showModal({
      title: '提示',
      content: '这是一个模态弹窗(有取消按钮)-智慧云工具箱',
      success: function (res) {
        if (res.confirm) {
          console.log('确定按钮被点击')
        } else if (res.cancel) {
          console.log('取消按钮被点击')
        }
      }
    })
  },
  showModal2: function () {
    wx.showModal({
      title: '提示',
      content: '这是一个模态弹窗(无取消按钮)-智慧云工具箱',
      showCancel:false
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

 <view class='page-body'>
    <view class='demo-box'>
      <view class='title'>(1)有【取消】按钮的模态弹窗</view>
      <button type="primary" bindtap="showModal1">显示Modal</button>
    </view>
    <view class='demo-box'>
      <view class='title'>(2)无【取消】按钮的模态弹窗</view>
      <button type="primary" bindtap="showModal2">显示Modal</button>
    </view>
  </view>

d2084d2f353f44ccb80ad2b326796a52.png3a12f702f6044d2b9f7ee7b373e2c05a.pnga402206e2023439fb38dd4328880ac8c.pngfa75b8627d85472092fa2b5faa1f0994.png

4. 操作菜单

小程序使用wx.showActionSheet(OBJECT)显示从底部浮出的操作菜单,其OBJECT参数说明如下表所示。c4949ce1c67e76fc437e1b08e45811a.png其中success返回参数说明如下表所示。908d51497424dab15262d244cddfd7b.pnga56706fca3da409ebfab0cb754b513a3.png

js文件

data: {
  },
  showActionSheet: function () {
    wx.showActionSheet({
      itemList: ['智慧云工具箱菜单1', '智慧云工具箱菜单2', '智慧云工具箱菜单3', '智慧云工具箱菜单4', '智慧云工具箱菜单5','智慧云工具箱菜单6'],
      success: function (res) {
        console.log(res.tapIndex)
      },
      fail: function (res) {
        console.log(res.errMsg)
      }
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>显示操作菜单</view>
      <button type="primary" bindtap="showActionSheet">显示ActionSheet</button>
    </view>

f9a8e11dc9bc49809aa41b8b3b3edbcf.pngad359e73ac524ebfa3955f5ca3d212e2.png

二、 导航条设置

2.1 当前页面标题设置

小程序使用wx.setNavigationBarTitle(OBJECT)动态设置当前页面的标题,其OBJECT参数说明如表所示。ed609de4c4996cb503b6a868b18f436.pnga56706fca3da409ebfab0cb754b513a3.png

js文件

  data: {
    title:''
  },
  titleInput: function (e) {
    this.setData({title:e.detail.value})
  },
  setTitle: function () {
    let title = this.data.title;
    wx.setNavigationBarTitle({
      title: title
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

<view class='demo-box'>
      <view class='title'>设置导航条标题</view>
      <input type='text' placeholder='请输入自定义的导航条标题' bindinput='titleInput'></input>
      <button type="primary" bindtap="setTitle">设置标题</button>
    </view>

2ef8e10ca4d544aba81b93befc0c94b1.png83267d68cfab4a01bcebd0e496f42b27.png

2.2 导航条加载动画

微信小程序分别使用: 1、wx.showNavigationBarLoading()在当前页面显示导航条加载动画 2、wx.hideNavigationBarLoading()在当前页面隐藏导航条加载动画。a56706fca3da409ebfab0cb754b513a3.png

js文件

 data: {
  },
  showLoading: function () {
    wx.showNavigationBarLoading()
  },
  hideLoading: function () {
    wx.hideNavigationBarLoading()
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

 <view class='demo-box'>
      <view class='title'>(1) 显示导航条加载动画</view>
      <button type="primary" bindtap="showLoading">显示加载动画</button>
    </view>
    <view class='demo-box'>
      <view class='title'>(2) 关闭导航条加载动画</view>
      <button type="primary" bindtap="hideLoading">关闭加载动画</button>
    </view>

903315d80ea24044bda5117344cc67d8.pngbf98a424085a466da6e8f0ddcd5b839e.png4c4eb0613741463ca895f774867e9527.png06072293e8a440c2a152a3a974a5adde.png

2.3 导航条颜色设置

微信小程序使用wx.setNavigationBarColor(OBJECT)设置导航条颜色,该接口从基础库 1.4.0 开始支持,低版本需做兼容处理。其OBJECT参数说明如表所示。ce7b26ddadcac9b86f3d1b4757ec985.png1、animation.timingFunc有效值如下: 2、linear:动画从头到尾的速度是相同的; 3、easeIn:动画以低速开始; 4、easeOut:动画以低速结束; 5、easeInOut:动画以低速开始和结束。

a56706fca3da409ebfab0cb754b513a3.png

js文件

 setColor:function(){
    wx.setNavigationBarColor({
      frontColor: '#000000',
      backgroundColor: '#FFF',
      animation: {
        duration: 2000,
        timingFunc: 'easeInOut'
      }
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

 <view class='demo-box'>
      <view class='title'>设置导航条颜色</view>
      <button type="primary" bindtap="setColor">设置颜色</button>
    </view>

7a9a7bc437c04d2ba59c2edc1782d5aa.png39f3a86f41f846b29f4b12d66c144a09.png

三、 tabBar设置

3.1 tabBar标记

3.1.1 设置tabBar标记

小程序使用wx.setTabBarBadge(OBJECT)为tabBar某一项的右上角添加文本,该接口从基础库 1.9.0 开始支持,低版本需做兼容处理。 其OBJECT 参数说明如表所示。

参数 类型 必填 说明
indlex Number tabBar的哪—项,从左边算起,从O开始计数
text String 显示的文本,超过3个字符则显示成“…"
success Function 接口调用成功的回调函数
fail Eunction 查接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功与否都执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //设置文本
  setText: function () {
    wx.setTabBarBadge({
      index: 1,
      text: '99'
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>右上角文本设置</view>
      <button type="primary" size='mini' bindtap="setText">添加文本</button>
    </view>

c604a5604b944e2aabe3a020ebad3996.png7c735563c26546439d9e076609a3ed05.png

3.1.2 移除tabBar标记

小程序使用wx.removeTabBarBadge(OBJECT)移除 tabBar 某一项右上角的文本,该接口从基础库 1.9.0 开始支持,低版本需做兼容处理。

其OBJECT 参数说明如表所示。

参数 类型 必填 说明
index Number tabBar的哪—项,从左边算起,从0开始计数
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数((调用成功与否都执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //取消文本
  removeText: function () {
    wx.removeTabBarBadge({
      index: 1
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>右上角文本设置</view>
      <button type="primary" size='mini' bindtap="removeText">取消文本</button>
    </view>

dfcc920ffac543f881454f8320d35acb.pngbc9466669dc7417d9f2f07ca2773859b.png

3.2 tabBar红点

3.2.1 显示tabBar红点

小程序使用wx.showTabBarRedDot(OBJECT)显示tabBar某一项的右上角的红点,该接口从基础库 1.9.0 开始支持,低版本需做兼容处理。

其OBJECT 参数说明如表所示。

参数 类型 必填 说明
index Number tabBar的哪—项,从左边算起,从0开始计数
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数((调用成功与否都执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //显示红点
  showRedDot: function () {
    wx.showTabBarRedDot({
      index: 1,
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>右上角红点设置</view>
      <button type="primary" size='mini' bindtap="showRedDot">添加红点</button>
    </view>

8731fb336c224681ac9bd39f61b2fd3b.pngf0dd95c6a69c4d83ab71d87f6c26b9ce.png

3.2.2 隐藏tabBar红点

小程序使用wx.hideTabBarRedDot(OBJECT)隐藏tabBar某一项的右上角的红点,该接口从基础库 1.9.0 开始支持,低版本需做兼容处理。 其OBJECT 参数说明如表所示。

参数 类型 必填 说明
index Number tabBar的哪—项,从左边算起,从0开始计数
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数((调用成功与否都执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //隐藏红点
  hideRedDot: function () {
    wx.hideTabBarRedDot({
      index: 1,
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>右上角红点设置</view>
      <button type="primary" size='mini' bindtap="hideRedDot">取消红点</button>
    </view>

c83d23926e164ab7be2cfe070893f771.pnga8ea32b9141d49369b014a42808294ae.png

3.3 onTabItemTap

在小程序中,点击 tabBar中的任一tab时会触发onTabItemTap(item),该函数从基础库1.9.0开始支持,低版本需做兼容处理

3.4 设置tabBar样式

3.4.1 设置tabBar整体样式

小程序使用wx.setTabBarStyle(OBJECT)动态设置tabBar的整体样式,该接口从基础库 1.9.0 开始支持,低版本需做兼容处理。 其OBJECT 参数说明如表所示。

参数 类型 说明
color HexColor tab上的文字默认颜色
selectedcolor Hexcolor tab上的文字选中时的颜色
backgroundColor HexColor tab的背景色
borderstyle String tabbar上边框的颜色,仅支持black/white
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功与否都执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //设置tabBar整体样式
  setBarStyle: function () {
    wx.setTabBarStyle({
      color: '#FF0000',
      selectedColor: '#0000FF'
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>tabBar样式设置</view>
      <button type="primary" size='mini' bindtap="setBarStyle">整体设置</button>
      <button type="primary" size='mini' bindtap="resetBarStyle">还原</button>
    </view>

d414b09d4a2c45258b66333a1afd4c49.png75d4b367066f4008896220259cfda1ff.png

3.4.2 设置tabBar单项样式

小程序使用wx.setTabBarItem(OBJECT)动态设置tabBar某一项的内容,该接口从基础库 1.9.0 开始支持,低版本需做兼容处理。 其OBJECT 参数说明如表所示。

参数 类型 必填 说明
index Number tabBar的哪一项,从左边算起
text String tab 上按钮文字
iconPath String 图片路径,icon大小限制为40kb,建议尺寸为81px * 81px,当postion为top时,此参数无效,不支持网络图片
selectedlconPath String 选中时的图片路径,icon大小限制为40kb,建议尺寸为81px * 81px,当postion为top 时,此参数无效
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功与否都执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //设置tabBar单项样式
  setBarItemStyle: function () {
    wx.setTabBarItem({
      index: 1,
      text: '首页',
      iconPath: 'http://inews.gtimg.com/newsapp_ls/0/14103180726/0',
      selectedIconPath: 'http://inews.gtimg.com/newsapp_ls/0/14103181160/0'
    })
  },
    //还原tabBar样式
  resetBarStyle: function () {
    wx.setTabBarItem({
      index: 1,
      text: 'tabBar例题',
      iconPath: 'http://inews.gtimg.com/newsapp_ls/0/14103182831/0',
      selectedIconPath: 'http://inews.gtimg.com/newsapp_ls/0/14103183127/0'
    })
    wx.setTabBarStyle({
      color: '#000000',
      selectedColor: '#1AAD19'
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>tabBar样式设置</view>
      <button type="primary" size='mini' bindtap="setBarItemStyle">单项设置</button>
      <button type="primary" size='mini' bindtap="resetBarStyle">还原</button>
    </view>

0ae684a05dec4c6db1ad4dcaaec4ef48.png47ed10cfa23c466caf989d3ffde41217.pngdef03296f91e451abf3c1eb5a043bd06.png8e7cea2a55c843ecbcaf299636185506.png

3.5 tabBar

3.5.1 显示tabBar

小程序使用wx.showTabBar(OBJECT)显示 tabBar,该接口从基础库 1.9.0 开始支持,低版本需做兼容处理。其OBJECT 参数说明如表所示。

参数 类型 必填 说明
animation Boolean
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数〔调用成功与否都执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //显示tabBar
  showTabBar: function () {
    wx.showTabBar({})
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='title'>tabBar的显示与隐藏</view>
      <button type="primary" size='mini' bindtap="showTabBar">显示tabBar</button>
    </view>

bdf2e7c556384acaa38af42c7b8d75ba.png328ce99561a74d9abcbb406265755872.png

3.5.2 隐藏tabBar

小程序使用wx.hideTabBar(OBJECT)隐藏 tabBar,该接口从基础库1.9.0 开始支持,低版本需做兼容处理。其OBJECT 参数说明如表所示。

参数 类型 必填 说明
animation Boolean
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数〔调用成功与否都执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //隐藏tabBar
  hideTabBar: function () {
    wx.hideTabBar({})
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

     <view class='title'>tabBar的显示与隐藏</view>
         <button type="primary" size='mini' bindtap="hideTabBar">隐藏tabBar</button>
    </view>

3b76e7b2cbfa445c8262eef51a13a058.pngd5bda22a36df4ef0b64413d407f1a904.png

四、 页面导航

4.1 跳转新页面

小程序使用wx.navigateTo(OBJECT)保留当前页面,并在当前页面上方打开应用内指定的新页面。这种打开方式可以点击新页面左上角的返回按钮或使用wx.navigateBack接口返回到原页面。其OBJECT参数说明如表所示。

参数 类型 必填 说明
url String 需要跳转的应用内非 tabBar的页面的路径,路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,多个参数用&分隔;如’path?key=value&key2=value2&…keyN=valueN’
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功与否都会执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

navigateTo: function () {
    wx.navigateTo({
      url: '/pages/zhygjx/new/new',
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>(1)wx.navigateTo</view>
      <button type="primary" size='mini' bindtap="navigateTo">跳转新页面</button>
    </view>

6f51f77d93ba4a29b5d14a485b13f3b2.png894224abe21549dc9ad8ccfe41403a94.png

4.2 返回指定页面

小程序使用wx.navigateBack(OBJECT)关闭当前页面,返回上一页面或多级页面。 OBJECT 参数说明如表所示。

参数 类型 必填 说明
delta Number 1 返回的页面数,如果delta大于现有页面数,则返回到首页

a56706fca3da409ebfab0cb754b513a3.png

js文件

  navigateBack:function() {
    wx.navigateBack({})
  },

json文件

  redirectTo: function () {
    wx.redirectTo({
      url: '/pages/zhygjx/new/new',
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>(3)wx.redirectTo</view>
      <button type="primary" size='mini' bindtap="redirectTo">当前页面重定向</button>
    </view>

71128d937587405aa56f6d8dbb9dc888.png

496a09002bc749e68234ae113d2d2b38.png

4.4 重启页面

小程序使用wx.reLaunch(OBJECT)关闭所有页面,重新打开到应用内的某个页面。该接口从基础库 1.1.0 开始支持,低版本需做兼容处理。 其OBJECT 参数说明如表所示。

参数 类型 必填 说明
url String ―需要跳转的应用内页面路径,路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如’path?key=value&key2=value2’,如果跳转的页面路径是tabBar页面则不能带参数
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功与否都执行)

a56706fca3da409ebfab0cb754b513a3.png

js文件

  reLaunch:function(){
    wx.reLaunch({
      url: '/pages/zhygjx/new/new',
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>(4)wx.reLaunch</view>
      <button type="primary" size='mini' bindtap="reLaunch">重启页面</button>
    </view>

c1f254e9eb87465daa4e1de7f56eacde.png0141c0379684472a8823bc7d9478b716.png

4.5 切换tabBar页面

小程序使用wx.switchTab(OBJECT)跳转到指定的tabBar页面,并关闭其他页面。 其OBJECT 参数说明如表所示。

参数 类型 必填 说明
url String 需要跳转的tabBar页面的路径(需在app.,json的tabBar字段定义的页面),路径后不能带参数
success Function 接调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功与否都执行)

js文件

  switchTab: function () {
    wx.switchTab({
      url: '/pages/zhygjx/tabBar/tabBar',
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

 

    <view class='demo-box'>
      <view class='title'>(5)wx.switchTab</view>
      <button type="primary" size='mini' bindtap="switchTab">切换到tabBar例题页面</button>
    </view>

33e0ca4696354d11978f81084ce78439.png85a0ee8070204ba5978467a3a7554dac.png

五、 动画

 小程序组件拥有animation属性来显示动画,其动画效果实现需要三个步骤:
 (1)创建动画实例;
 (2)通过调用实例的方法来描述动画;
 (3)通过动画实例的export方法导出动画数据传递给组件的animation属性。

5.1 动画实例

小程序使用wx.createAnimation(OBJECT)可以创建一个动画实例animation。 其OBJECT参数说明如表所示。

参数 类型 必填 默认值 说明
duration lnteger 400 动画持续时间,单位ms
timingFunetion String “linear” 定义动画的效果
delay lnteger 0 动画延迟时间,单位ms
transformOrigin string "50%50%0 设置transform-origin

timingFunction 有效值如下:

1、linear:动画从头到尾的速度是相同的;
2、ease:动画以低速开始,然后加快,在结束前变慢;
3、ease-in:动画以低速开始;
4、ease-in-out:动画以低速开始和结束;
5、ease-out:动画以低速结束;
6、step-start:动画第一帧就跳至结束状态直到结束;
7、step-end:动画一直保持开始状态,最后一帧跳到结束状态。

5.2 动画描述

动画实例可以调用animation对象的相关方法来描述动画,调用结束后会返回自身。

animation对象的方法可以分为6类,分别用于控制组件的:
1、样式
2、旋转
3、缩放
4、偏移
5、倾斜
6、矩阵变形

5.2.1 控制组件样式的方法

控制组件样式的方法说明如下表所示。

方法 参数 说明
opacity value 透明庶,参数范围0~1
backgroundcolor color 颜色值
width length 长度值,如果传入Number则默认使用px,可传入其他自定义单位的长度值
height length 长度值,如果传入 Number则默认使用px,可传入其他自定义单位的长度值
top length 长度值,如果传入Number则默认使用px。可传入其他自定义单位的长度值
left length 长度值,如果传入Number则默认使用px,可传入其他自定义单位的长度值
bottom length 长度值,如果传入Number则默认使用px,可传入其他自定义单位的长度值
right length 长度值,如果传入Number则默认使用px。可传入其他自定义单位的长度值

5.2.2 控制组件旋转的方法

控制组件旋转的方法说明如下表所示。

方法 参数 说明
rotate deg deg的范围-180~180,从原点顺时针旋转一个deg角度
rotatex deg deg的范围-180~180,在X轴旋转一个deg角度
rotateY deg deg的范围-180~180,在Y轴旋转一个deg角度
rotatez deg deg的范围-180~180,在Z轴旋转一个deg角度
rotatesd (xy,z,deg) 同transform-function rotate3d

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //旋转
  rotate: function () {
    this.animation.rotate(45).step()
    this.setData({ animation: this.animation.export() })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

      <button type="primary" size='mini' bindtap="rotate">旋转</button>

wxss文件

.animation-view{
  width: 660rpx;
  height: 220rpx;
  background-color: lightgreen;
  margin: 20rpx auto;
  line-height: 220rpx;
}
button{
  margin: 10rpx;
}

56ec87eedb7347c1be94017d975eb7f2.pngc18e0f4a85d747cc93ed7b60dafea091.png

5.2.3 控制组件缩放的方法

控制组件缩放的方法说明如下表所示。

方法 参数 说明
scale sx.[sy] 一个参数时,表示在X轴、Y轴同时缩放sx倍数;两个参数时表示在X轴缩放sx倍数,在Y轴缩放sy倍数
scalex sx 在X轴缩放sx倍数
scaleY sy 在Y轴缩放sy倍数
scalez sz 在Z轴缩放sy倍数
scale3d (sx,sy,sz) 在X轴缩放sx倍数,在Y轴缩放sx倍数,在Z轴缩放sz倍数
a56706fca3da409ebfab0cb754b513a3.png

js文件

  //缩放
  scale: function () {
    this.animation.scale(0.5).step()
    this.setData({ animation: this.animation.export() })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

      <button type="primary" size='mini' bindtap="scale">缩放</button>

wxss文件

.animation-view{
  width: 660rpx;
  height: 220rpx;
  background-color: lightgreen;
  margin: 20rpx auto;
  line-height: 220rpx;
}
button{
  margin: 10rpx;
}

26be866b15604a6ea31885e2f9312a81.pngecaaeaaa9ed246b98ca66b230b6e4777.png

5.2.4 控制组件偏移的方法

控制组件偏移的方法说明如下表所示。

方法 参数 说明
translate tx.[sy] 一个参数时,表示在X轴、Y轴同时缩放tx倍数;两个参数时表示在X轴缩放tx倍数,在Y轴缩放sy倍数
translateX tx 在X轴缩放tx倍数


translateY ty 在Y轴缩放ty倍数
translateZ tz 在Z轴缩放ty倍数
translatesd (tx,ty,tz) 在X轴缩放sx倍数,在Y轴缩放tx倍数,在Z轴缩放tz倍数

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //偏移
  translate: function () {
    this.animation.translate(100, 50).step()
    this.setData({ animation: this.animation.export() })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

      <button type="primary" size='mini' bindtap="translate">偏移</button>

wxss文件

.animation-view{
  width: 660rpx;
  height: 220rpx;
  background-color: lightgreen;
  margin: 20rpx auto;
  line-height: 220rpx;
}
button{
  margin: 10rpx;
}

c1205c76424a4f16ad516240e907e46a.pngc0ad7b945aa54f7699390add45c56fd5.png

5.2.5 控制组件倾斜的方法

控制组件倾斜的方法说明如下表所示。

方法 参数 说明
skew ax,[ay] 参数范围-180~180;一个参数时,Y轴坐标不变,X轴坐标延顺时针倾斜ax度;两个参数时,分别在X轴倾斜ax度,在Y轴倾斜ay度
skewx ax 参数范围-180~180;Y轴坐标不变,X轴坐标延顺时针倾斜ax度
skewY ay 参数范围-180~180;X轴坐标不变,Y轴坐标延顺时针倾斜ay度

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //倾斜
  skew: function () {
    this.animation.skewX(45).step()
    this.setData({ animation: this.animation.export() })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

      <button type="primary" size='mini' bindtap="skew">倾斜</button>

wxss文件

.animation-view{
  width: 660rpx;
  height: 220rpx;
  background-color: lightgreen;
  margin: 20rpx auto;
  line-height: 220rpx;
}
button{
  margin: 10rpx;
}

446585abe2c54fa1bb3f49b24547c816.png

5.2.6 控制组件矩阵变形的方法

控制组件矩阵变形的方法说明如下表所示。

方法 参数 说明
matrix (a,b,c,d,tx,ty) 同transform-function matrix
matrix3d 同transform-function matrix3d

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //同时动画
  sync: function () {
    this.animation.rotate(45).scale(0.5).translate(100, 50).skewX(45).step()
    this.setData({ animation: this.animation.export() })
  },
  //依次动画
  queue: function () {
    this.animation.rotate(45).step().scale(0.5).step().translate(100, 50).step().skewX(45).step()
    this.setData({ animation: this.animation.export() })
  },
  //还原
  reset: function () {
    this.animation.rotate(0).scale(1).translate(0, 0).skewX(0).step()
    this.setData({ animation: this.animation.export() })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

      <button bindtap="sync">同时动画</button>
      <button bindtap="queue">依次动画</button>
      <button bindtap="reset">还原</button>

wxss文件

.animation-view{
  width: 660rpx;
  height: 220rpx;
  background-color: lightgreen;
  margin: 20rpx auto;
  line-height: 220rpx;
}
button{
  margin: 10rpx;
}

5.3 动画导出

在声明完animation对象并描述了动画方法后,还需要使用export()将该对象导出到组件的animation属性中,方可使得组件进行动画效果。

js文件

//1. 创建animation对象
var animation = wx.createAnimation()
//2. 描述第一个动画
animation.scale(2).step()
//3.导出至组件的动画属性
this.setData({animationData:animation.export()})
//4. 描述第二个动画
animation.rotate(180).step()
//5.导出至组件的动画属性
this.setData({animationData:animation.export()})

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

<view animation="{{animationData}}"></view>

217ca2c5bc7448fe95bc00ee32eb1dfd.png616e448b0156412b84d9e1ec5ec81e93.png4c0be0c272a149ffb35c3facf2d500b6.pnga42663a88ae44a1aadcdc06d81d50d45.pngbf3c8d57ae124aeabe7f2ef995b22310.png1606b853def14904b576ba4289874ba0.png

六、 页面位置

小程序使用wx.pageScrollTo(OBJECT)将页面滚动到目标位置,该接口从基础库 1.4.0 开始支持,低版本需做兼容处理。其OBJECT参数说明如表所示。

参数 类型 必填 说明
serollTop Number 滚动到页面的目标位置(单位px)
duration Number 滚动动画的时长。默认30oms,单位ms

a56706fca3da409ebfab0cb754b513a3.png

js文件

  //回到顶部
  backToTop:function(){
    wx.pageScrollTo({
      scrollTop: 0,
      duration:2000
    })
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

    <view class='demo-box'>
      <view class='title'>wx.pageScrollTo(OBJECT)的用法</view>
      <view class='test'>这是一个高度超过手机屏幕的组件</view>
      <button type="primary" bindtap="backToTop">回到顶部</button>
    </view>

165cde9a3d9a4c50a7cab2760bdf83c5.pngec53b458f0d54e52974111eacca42dd3.png

七、 绘图

7.1 绘制矩形

1. 创建矩形 小程序使用画布对象的rect方法创建矩形,然后使用fill()或stroke()方法在画布上填充实心矩形或描边空心矩形。

参数解释如下:
x:Number类型,矩形左上角点的x坐标;
y:Number类型,矩形左上角点的y坐标;
width:Number类型,矩形的宽度;
height:Number类型,矩形的高度。

a56706fca3da409ebfab0cb754b513a3.png

js文件

 fillRect:function(){
    let ctx = this.ctx;
    ctx.rect(50, 50, 200, 200)
    ctx.setFillStyle('orange')
    ctx.fill()
    ctx.draw()
  },
  strokeRect: function () {
    let ctx = this.ctx;
    ctx.rect(100, 100, 100, 100)
    ctx.setStrokeStyle('purple')
    ctx.stroke()
    ctx.draw()
  },
  clearRect: function () {
    let ctx = this.ctx;
    ctx.clearRect(0, 0, 300, 300)
    ctx.draw()
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //创建画布上下文
    this.ctx = wx.createCanvasContext('myCanvas')
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

<view class='demo-box'>
      <view class='title'>绘制矩形</view>
      <canvas canvas-id='myCanvas' style='border:1rpx solid'></canvas>
      <button type='primary' size='mini' bindtap='fillRect'>填充矩形</button>
      <button type='primary' size='mini' bindtap='strokeRect'>描边矩形</button>
      <button type='primary' size='mini' bindtap='clearRect'>清空画布</button>
    </view>

wxss文件

button{
  margin: 10rpx;
}

cf0d1c9312cc4c4aadb29c8bec7b2068.png8f872ce2455240da82824482703cc224.png9ce6e76135a84559b4d5545ae224ee02.png8f872ce2455240da82824482703cc224.pngf10b584910574b5a939946c4ce69f56e.png

7.2 绘制路径

路径(Path)是绘制图形轮廓时画笔留下的轨迹,也可以理解为画笔画出的像素点组成的线条。多个点形成线段或曲线,不同的线段或曲线相连接又形成了各种形状效果。 绘制路径主要有以下4种方法: 1、beginPath():用于新建一条路径,也是图形绘制的起点。每次调用该方法都会清空之前的绘图轨迹记录,重新开始绘制新的图形。 2、closePath():该方法用于闭合路径。当执行该方法时会从画笔的当前坐标位置绘制一条线段到初始坐标位置来闭合图形。此方法不是必需的,若画笔的当前坐标位置就是初始坐标位置,则该方法可以省略不写。 3、stroke():在图形轮廓勾勒完毕后需要执行该方法才能正式将路径渲染到画布上。 4、fill():可以使用该方法为图形填充颜色,生成实心图形。若并未执行closePath()方法来闭合图形,则在此方法被调用时会自动生成线段连接画笔当前坐标位置和初始坐标位置,形成闭合图形然后再进行填充颜色。

a56706fca3da409ebfab0cb754b513a3.png

绘制线段

js文件

 //绘制基本图形
  drawSample: function () {
    let ctx = this.ctx
    //绘制三角形
    ctx.beginPath()
    ctx.moveTo(150, 75)
    ctx.lineTo(225, 225)
    ctx.lineTo(75, 225)
    ctx.closePath()
  },
  //描边路径
  strokePath:function(){
    let ctx = this.ctx
    this.drawSample()
    ctx.setStrokeStyle('red')
    ctx.stroke()
    ctx.draw()
  },
  //填充路径
  fillPath: function () {
    let ctx = this.ctx
    this.drawSample()
    ctx.setFillStyle('blue')
    ctx.fill()
    ctx.draw()
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

 <view class='demo-box'>
      <view class='title'>绘制线段</view>
      <canvas canvas-id='myCanvas' style='border:1rpx solid'></canvas>
      <button type='primary' size='mini' bindtap='strokePath'>描边路径</button>
      <button type='primary' size='mini' bindtap='fillPath'>填充路径</button>
    </view>

wxss文件

button{
  margin: 10rpx;
}

ad147a56b8094ddc91c82f16ee7ce96b.png

c36edc49032b46e7b55b0f7cd65b4a8a.png

绘制圆弧

【微信小程序开发小白零基础入门】微信小程序框架【建议收藏】

a56706fca3da409ebfab0cb754b513a3.png

js文件

 onLoad: function (options) {
    //创建画布上下文
    const ctx = wx.createCanvasContext('myCanvas')
    //设置填充颜色为黄色
    ctx.setFillStyle('yellow')
    //绘制圆形的脸,并填充为黄色
    ctx.beginPath()
    ctx.arc(150, 150, 80, 0, Math.PI * 2, true)
    ctx.stroke()
    //如果不需要勾勒脸的轮廓,此句可省略
    ctx.fill()
    //设置填充颜色为黑色
    ctx.setFillStyle('black')
    //填充黑色的左眼
    ctx.beginPath()
    ctx.arc(190, 130, 10, 0, Math.PI * 2, true)
    ctx.fill()
    //填充黑色的右眼
    ctx.beginPath()
    ctx.arc(110, 130, 10, 0, Math.PI * 2, true)
    ctx.fill()
    //绘制带有弧度的笑容
    ctx.beginPath()
    ctx.arc(150, 160, 50, 0, Math.PI, false)
    ctx.stroke()
    //全部绘制到画布上
    ctx.draw()
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

<view class='demo-box'>
      <view class='title'>绘制圆弧</view>
      <canvas canvas-id='myCanvas' style='border:1rpx solid'></canvas>
    </view>

77a5696cc0ea4dcdbb8845b7048c5716.png

绘制曲线

【微信小程序开发小白零基础入门】微信小程序框架【建议收藏】a56706fca3da409ebfab0cb754b513a3.png

js文件

 onLoad: function (options) {
    //创建画布上下文
    const ctx = wx.createCanvasContext('myCanvas')
    //设置填充颜色为红色
    ctx.setFillStyle('red');
    //三次曲线
    ctx.beginPath();
    ctx.moveTo(90, 55);
    ctx.bezierCurveTo(90, 52, 85, 40, 65, 40);
    ctx.bezierCurveTo(35, 40, 35, 77.5, 35, 77.5);
    ctx.bezierCurveTo(35, 95, 55, 117, 90, 135);
    ctx.bezierCurveTo(125, 117, 145, 95, 145, 77.5);
    ctx.bezierCurveTo(145, 77.5, 145, 40, 115, 40);
    ctx.bezierCurveTo(100, 40, 90, 52, 90, 55);
    ctx.fill();
    //绘制到画布上
    ctx.draw()
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

 <view class='demo-box'>
      <view class='title'>使用三次贝塞尔曲线绘制爱心</view>
      <canvas canvas-id='myCanvas' style='border:1rpx solid'></canvas>
    </view>
c05479903c5c43e982d3495944c464b1.png

7.3 绘制文本

1、填充文本

2、设置字体大小

3、设置文本基准线

4、设置文本对齐方式

5、设置字体风格

【微信小程序开发小白零基础入门】微信小程序框架【建议收藏】a56706fca3da409ebfab0cb754b513a3.png

js文件

onLoad: function (options) {
    const ctx = wx.createCanvasContext('myCanvas')
    //设置字号
    ctx.setFontSize(40)
    //设置文本水平基准线
    ctx.setTextBaseline('bottom')
    //填充文字
    ctx.fillText('你好', 30, 150)
    //设置填充颜色
    ctx.setFillStyle('green')
    //设置文本水平基准线
    ctx.setTextBaseline('top')
    //填充文字
    ctx.fillText('智慧云工具箱', 60, 150)
    ctx.draw()
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

 <view class='demo-box'>
      <view class='title'>绘制文本</view>
      <canvas canvas-id='myCanvas' style='border:1rpx solid'></canvas>
    </view>

f93875e01ffa4307a28ce78f72569f21.png

八、 下拉刷新

8.1 监听下拉刷新

小程序在Page中定义了onPullDownRefresh处理函数,用于监听当前页面用户下拉刷新事件。

8.2 开始下拉刷新

小程序使用wx.startPullDownRefresh(OBJECT)触发下拉刷新动画,效果与用户手动下拉刷新一致。该接口从基础库 1.5.0 开始支持,低版本需做兼容处理。 其OBJECT参数说明如表所示。

参数 类型 必填 说明
success Function 接口调用成功的回调函数。返回String类型参数errMsg表示调用结果
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功与否都执行)

8.3 停止下拉刷新

小程序使用wx.stopPullDownRefresh()停止当前页面下拉刷新。a56706fca3da409ebfab0cb754b513a3.png

js文件

 //开始下拉刷新
  startPullDown:function(){
    wx.startPullDownRefresh({
      success: function (res) {
        console.log(res.errMsg)
      }
    })
  },
  //停止下拉刷新
  stopPullDown: function () {
    wx.stopPullDownRefresh()
  },

json文件

{"navigationBarTitleText": "智慧云工具箱-微信小程序界面API"
}

wxml文件

 <view class='demo-box'>
      <view class='title'>模拟下拉刷新</view>
      <button type='primary' bindtap='startPullDown'>开始下拉</button>
      <button type='primary' bindtap='stopPullDown'>停止下拉</button>
    </view>

wxss文件

button{
  margin: 10rpx;
}

d3f163972c444679aaf800912cfbd8e3.png572df569b3004d65956c3b6b193fb903.png

九、 推荐小程序(欢迎各位大佬指导)

相关文章
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
555 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
676 1
|
2月前
|
存储 小程序 安全
微信的开发管理都需要配置什么?
【10月更文挑战第17天】微信的开发管理都需要配置什么?
32 0
|
2月前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
378 0
|
2月前
|
小程序
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
554 0
|
15天前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。
|
27天前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。
|
28天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
2月前
|
编解码 监控 API
直播源怎么调用api接口
调用直播源的API接口涉及开通服务、添加域名、获取API密钥、调用API接口、生成推流和拉流地址、配置直播源、开始直播、监控管理及停止直播等步骤。不同云服务平台的具体操作略有差异,但整体流程简单易懂。
|
18天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释