前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『组件』大转盘、刮刮乐、老虎机……

『组件』大转盘、刮刮乐、老虎机……

作者头像
极乐君
发布2018-02-06 10:35:08
3.6K0
发布2018-02-06 10:35:08
举报
文章被收录于专栏:极乐技术社区极乐技术社区

组件

框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。

什么是组件:

  • 组件是视图层的基本组成单元。
  • 组件自带一些功能与微信风格的样式。
  • 一个组件通常包括开始标签和结束标签,属性来修饰这个组件,内容在两个标签之内。
代码语言:js
复制
<tagname property="value">
  Content goes here ...
</tagname>

官方文档:https://mp.weixin.qq.com/debug/wxadoc/dev/component/

本期给大家带来的是7个微信小程序精美组件。

大转盘组件

  • WXSS中引用样式:@import './utils/dial.wxss'
  • WXML中引用结构:<import src="./utils/dial.wxml"/>
  • JS中引用:import Dial from './utils/dial.js'

JS中实例调用:

代码语言:js
复制
  let dial = new Dial(this, {
     areaNumber: 8,   //抽奖间隔
     speed: 16,       //转动速度
     awardNumer: 2,    //中奖区域从1开始
     mode: 1,    //1是指针旋转,2为转盘旋转
     callback: () => {       //运动停止回调  
     }
   })

刮刮乐组件

  • WXML中引用结构:<import src="./utils/scratch.wxml"/>
  • JS中引用:import Scratch from './utils/scratch.js'

JS中实例调用:

代码语言:js
复制
this.scratch = new Scratch(this, {
    canvasWidth: 197,   //画布宽带
    canvasHeight: 72,  //画布高度
    imageResource: './images/placeholder.png', //画布背景
    r: 4, //笔触半径
    awardTxt: '中大奖', //底部抽奖文字
    awardTxtColor: "#1AAD16", //画布颜色
    awardTxtFontSize: "24px", //文字字体大小
    callback: () => {      //清除画布回调
    }
  })

注意:小程序无globalCompositeOperation = 'destination-out'属性,所以采用 clearRect 做擦除处理

老虎机组件

  • WXSS中引用样式:@import './utils/machine.wxss'
  • WXML中引用结构:<import src="./utils/machine.wxml"/>
  • JS中引用:import Machine from './utils/machine.js'

JS中实例调用:

代码语言:js
复制
  this.machine = new Machine(this, {
     height: 40,  //单个数字高度
     len: 10,     //单个项目数字个数
     transY1: 0,
     num1: 3,    //结束数字
     transY2: 0,
     num2: 0,    //结束数字
     transY3: 0,
     num3: 0,  //结束数字
     transY4: 0,
     num4: 1,  //结束数字
     speed: 24,  //速度
     callback: () => {         //停止时回调        
     }      
   })

跑马灯组件

  • WXSS中引用样式:@import './utils/marquee.wxss'
  • WXML中引用结构:<import src="./utils/marquee.wxml"/>
  • JS中引用:import Marquee from './utils/marquee.js'

JS中实例调用:

代码语言:js
复制
 this.marquee = new Marquee(this, {
    len: 9, //宫格个数
    ret: 9, //抽奖结果对应值1~9
    speed: 100,  // 速度值
    callback: () => {      //结束回调    
    }            
  })

九宫格翻纸牌组件

  • WXSS中引用样式:@import './utils/card.wxss'
  • WXML中引用结构:<import src="./utils/card.wxml"/>
  • JS中引用:import Card from './utils/card.js'

JS中实例调用:

代码语言:js
复制
this.card = new Card(this,{
   data: [   //宫格信息,内联样式、是否是反面、是否运动、对应奖项
     {inlineStyle: '', isBack: false, isMove: false, award: "一等奖"},    
     {inlineStyle: '', isBack: false, isMove: false, award: "二等奖"},
     {inlineStyle: '', isBack: false, isMove: false, award: "三等奖"},
     {inlineStyle: '', isBack: false, isMove: false, award: "四等奖"},
     {inlineStyle: '', isBack: false, isMove: false, award: "五等奖"},
     {inlineStyle: '', isBack: false, isMove: false, award: "六等奖"},
     {inlineStyle: '', isBack: false, isMove: false, award: "七等奖"},
     {inlineStyle: '', isBack: false, isMove: false, award: "八等奖"},
     {inlineStyle: '', isBack: false, isMove: false, award: "九等奖"}
   ],   callback: (idx, award) => {     //结束回调, 参数对应宫格索引,对应奖项    
   }
 })

摇一摇组件

  • WXSS中引用样式:@import './utils/shake.wxss'
  • WXML中引用结构:<import src="./utils/shake.wxml"/>
  • JS中引用:import Shake from './utils/shake.js'

JS中实例调用:

代码语言:js
复制
this.shake = new Shake(this, {
    shakeThreshold: 70, //阈值
    callback: () => {
 
    }            
  })

手势解锁组件

  • WXSS中引用样式:@import './utils/lock.wxss'
  • WXML中引用结构:<import src="./utils/lock.wxml"/>
  • JS中引用:import Lock from './utils/lock.js'

JS中实例调用:

代码语言:js
复制
this.lock = new Lock(this, {
   canvasWidth: 300,
   canvasHeight: 300,
   canvasId: 'canvasLock',
   drawColor: '#3985ff'        
 })

本文是github作者pfan123带来的精彩分享,项目地址:https://github.com/pfan123/wx-market

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极乐技术社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档