【微信小程序开发小白零基础入门】微信小程序界面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

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

相关文章
|
9月前
|
小程序 安全 JavaScript
微信小程序API+京东支付,无缝结账体验满分!
在数字化时代,支付体验成为电商竞争关键。本文详解如何通过微信小程序API无缝集成京东支付,实现“一键结账”流畅体验。结合微信庞大用户基础与京东支付安全高效优势,助力电商业务提升转化与用户满意度。
469 0
|
10月前
|
人工智能 自然语言处理 小程序
微信小程序+淘宝API,无缝购物体验提升复购率!
在电商竞争激烈的当下,微信小程序与淘宝API的整合为商家提供了一条提升用户体验与复购率的创新路径。本文详解其整合原理、实现步骤及优势,助力商家打造无缝购物体验,提升转化效率。
439 0
|
8月前
|
安全 NoSQL API
拼多多:通过微信支付API实现社交裂变付款的技术解析
基于微信JSAPI构建社交裂变支付系统,用户发起拼单后生成预订单与分享链接,好友代付后通过回调更新订单并触发奖励。集成微信支付、异步处理、签名验签与Redis关系绑定,提升支付成功率与裂变系数,实现高效安全的闭环支付。
879 0
|
9月前
|
移动开发 小程序 安全
微信API社交裂变工具,老带新流量成本归零!
在数字化营销时代,利用微信API构建社交裂变工具,可实现“老带新”的病毒式传播,大幅降低获客成本。本文详解如何通过微信API实现零成本流量增长,解析裂变机制与技术实现。
453 0
|
9月前
|
数据采集 小程序 搜索推荐
微信小程序API+淘宝数据分析,决策精准如神助!
本文探讨如何结合微信小程序API与淘宝数据分析,实现数据驱动的智能决策。通过实时数据采集、用户行为分析与机器学习模型,助力企业提升运营效率与市场竞争力,实现精准营销与高效决策。
229 0
|
10月前
|
供应链 小程序 API
微信小程序API集成京东库存,移动端销量暴涨!
在数字化时代,微信小程序与京东库存系统集成成为提升移动端销量的关键策略。本文详解如何通过API实现库存实时同步、优化用户体验,推动销量增长50%以上,并结合实际案例与代码示例,为企业提供可落地的解决方案。
404 0
|
小程序 Java 关系型数据库
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
|
小程序 JavaScript 前端开发
微信小程序开发全流程:从注册到上线的完整指南
这篇文章详细记录了微信小程序的完整开发到最终上线的每一个步骤。适合对小程序开发感兴趣的个人开发者或希望了解完整流程的学习者,涵盖了云开发、事件绑定、生命周期管理、组件使用等关键内容。
19177 14
|
小程序 关系型数据库 Java
weixin168“返家乡”高校暑期社会实践微信小程序设计与开发ssm(文档+源码)_kaic
本文探讨高校暑期社会实践微信小程序的开发与应用,旨在通过信息化手段提升活动管理效率。借助微信小程序技术、SSM框架及MySQL数据库,实现信息共享、流程规范和操作便捷。系统涵盖需求分析、可行性研究、设计实现等环节,确保技术可行、操作简便且经济合理。最终,该小程序可优化活动发布、学生信息管理和心得交流等功能,降低管理成本并提高工作效率。
|
JavaScript Java Serverless
入门 | 云开发平台1分钟开发一个API
云开发系列课程主要介绍了从入门到精通快速上手Serverless和云开发技术。学习内容涵盖云开发协同、云函数、云数据库、多媒体托管、前后端一体化框架等Serverless Web开发必备知识。希望通过云开发系列课程的学习与实际操作,让大家深入了解Serverless和云开发技术,并加深对阿里云云开发平台和阿里云Serverless产品的理解与认识。 本篇内容作为入门知识,让你在一分钟之内运行起一个Java/NodeJS/Python/PHP任何一门语言的Serverless API ,让你可以在后续的课程中向API添加各种有意思的功能。
入门 | 云开发平台1分钟开发一个API