资讯专栏INFORMATION COLUMN

一起抽圣诞的惊喜盒子吧!(小程序起手式)

codecook / 2767人阅读

摘要:平安夜圣诞节总是让人联想到平安果圣诞袜圣诞树圣诞老人圣诞橱窗等等让人欢喜满满期望满满的词语。礼物祝福笑脸惊喜温暖都伴随而来,最近课程轻松,便想着做一个有关圣诞的小程序,来当作对小程序的初步学习。

Christmas is coming!

平安夜/圣诞节总是让人联想到平安果、圣诞袜、圣诞树、圣诞老人、圣诞橱窗等等让人欢喜满满、期望满满的词语。
礼物、祝福、笑脸、惊喜、温暖都伴随而来,最近课程轻松,便想着做一个有关圣诞的小程序,来当作对小程序的初步学习。

项目展示: 惊喜盒子

gif图有点迟钝(上传图片不能超过4M),其实转起来很快的,可观看录制视频

圣诞许愿


开发工具:

微信开发者工具

小程序开发文档

iconfont矢量图标库:找到合适的tabBar图标

页面注册:

每个页面都要在app.json里注册

"pages":[
    "pages/index/index",
    "pages/logs/logs",
    "pages/wish/wish",
    "pages/surprise/surprise",
    "pages/list/list",
    "pages/happy/happy"
  ],
底部导航:
"tabBar": {
    "color": "#666",
    "selectedColor": "#3cc51f",
    "backgroundColor": "#eee",
    "borderStyle": "white",
    "list": [{
      "pagePath": "pages/wish/wish",
      "text": "圣诞许愿",
      "iconPath": "images/wish.png",
      "selectedIconPath": "images/wish_active.png"  
    }, {
      "pagePath": "pages/surprise/surprise",
      "text": "惊喜盒子",
      "iconPath": "images/surprise.png",
      "selectedIconPath": "images/surprise_active.png"
    }]
  }
不通过tabBar,如何跳转到另一个页面

很简单,在页面中设一个按钮,绑定点击事件

点击跳转事件的实现:

  gotoList: function() {
    wx.navigateTo({
      url: "../list/list"
    })
  }
背景图片显示不了

在pc端调试的时候已经可以看到出现背景图片了,但是在真机调试的时候却发现没有背景图片,这是小程序的一个bug

你可以在使用背景图片的时候用网络图片,就是用外链的形式,比如你将这张图片放到你的服务器,如:https://xxxx/xxx.jpg
如果你没有服务器的话,推荐七牛云的对象存储,你可以把你要用到的图片传上去,它会为每张图片生成外链哒

两个页面之间如何传递数据?

考虑   大转盘后获得的惊喜盒子的内容如何传递到我的奖品页面
用wx.setStorage(OBJECT)和wx.getStorage(OBJECT)

惊喜盒子页面
js文件中的点击抽奖事件函数中添加这一段代码:

    var that = this
    // 获取奖品配置
    var awardsConfig = app.awardsConfig
    if (awardIndex < 2) 
    awardsConfig.chance = false
    // console.log(awardsConfig.awards[awardIndex].name)
    that.data.List.push(awardsConfig.awards[awardIndex].name)
    wx.setStorage({
      key:"list",
      data: that.data.List
    })

我的奖品页面
js文件中的onload中添加这一段代码:

 var that = this
    wx.getStorage({
      key: "list",
      success: function (res) {
        console.log(res.data);
        that.setData({
          awardsList: res.data,
         })
      }
    })
无法操作dom,如何更改样式?

微信小程序无法操作dom,这意味着之前js中的各种习惯方法必须换一种思路实现;
我们可以通过操作数据,用{{}}变量绑定,来更改样式。

例如大转盘中间的“抽奖”这个view,点击后转盘转动,按钮变灰,转动完毕,按钮变回原样,那么给这个view的class绑定一个变量:

抽奖

在js文件的data中新增一个变量btnDisabled,赋值为空:

data: {
    image: "http://ozlrrk52c.bkt.clouddn.com/wx/top_bg.png",
    animationData: {},
    awardsList: {},
    List: [],
    btnDisabled: "" 
  },

在点击后,赋值为新的class名称(这里设的是disabled)

this.setData({
      animationData: animationInit.export(),
      btnDisabled: "disabled"
    })

在wxss文件中新增disabled的样式

.canvas-btn.disabled{
    pointer-events: none;
    background: #B07A7B;
    color: #ccc;
}
把你写的愿望/贺卡发给你的好友

转发分享
在 Page 中定义 onShareAppMessage 函数,设置该页面的转发信息。路径为happy页面,存储你保存的卡片内容。

 onShareAppMessage: function (e) {
    return {
        title: "圣诞快乐~",
        desc: "",
        imageUrl: "http://ozlrrk52c.bkt.clouddn.com/wx/1.jpg",
        path: "/pages/happy/happy"
    }
  }
结语

恰逢圣诞节前夕,便想写个相关的小程序练练手,首先是构思节日需求,然后想到了许愿/贺卡/抽礼物这些小点子,然后就是思考怎么实现这些功能,以及页面的合理美观,当然总体来说比较简单啦,只是个起手式,相当于初步认识小程序啦

最后祝大家圣诞快乐~

项目源址:https://github.com/hellocassi...
我的邮箱:justincassiell@gmail.com
欢迎交流!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90369.html

相关文章

  • WebGL姐姐教我学画画之手式

    摘要:我们现在可以向她许愿,描述我们心中的猩福世界了的许愿池上的许愿树小姐姐有多个许愿池,我们这里使用。 初次接触WebGL,如有错误之处欢迎留言,共同学习进步. v WebGL的自画像 我,WebGL,全名Web Graphics Library,是为了让死宅程序猿们(摊手)能在浏览器上为所欲为的画女朋友,并还能动手动脚,而屈尊降临于猿类的世界内。哇哈哈哈哈,快来臣服于我吧,哇嘎嘎嘎嗝~ ...

    BDEEFE 评论0 收藏0
  • 多机热部署工具 Capistrano 手式

    摘要:多机热部署同时升级多台服务器什么是是一种在多台服务器上运行脚本的开源工具,它主要用于部署应用。它自动完成多台服务器上新版本的同步更新,包括数据库的改变。 Capistrano 什么是多机热部署 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。多机热部署 ,同时升级多台服务器 什么是Capistrano 是一种在多台服务器上运行脚本的开源工具,它主要用于部署web应用。它...

    vspiders 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<