微信小程序 - 仿南湖微科普小程序游戏环节
最近看到南湖微科普小程序游戏环节感觉还可以,于是模仿了下
<view class='current' animation="{{animation}}">
{{current.title}}
</view>
<view class='caozuo'>
<text bindtap="type1btn">可回收</text>
<text bindtap="type2btn">有害垃圾</text>
<text bindtap="type3btn">其他</text>
</view>
<view class='score'>分数:{{score}}</view>
.current{ width:100px;height:100px;border-radius:5px; margin:20px auto;text-align:center;line-height:100px;color:#fff;background:red; }
.caozuo{display: flex;justify-content:space-between;margin-top: 15px;font-size:14px;text-align: center;}
.caozuo text{text-align: center;flex:1;}
.score{ text-align:center;margin-top:20px;font-size:14px;color:red; }
Page({
data: {
current:{},
score:0,
arr:[
{
id:1,
title:"手机壳",
type:"1"
},
{
id:2,
title: "枯枝",
type: "3"
},
{
id:3,
title: "纸盒",
type: "1"
},
{
id:4,
title: "涂改溢瓶",
type:"2"
},
{
id:5,
title: "药水瓶",
type: "2"
},
{
id: 6,
title: "电视机",
type: "1"
},
{
id: 7,
title: "菜叶",
type: "3"
}
]
},
onReady: function () {
this.animation = wx.createAnimation()
},
onLoad: function (options) {
// type:1可回收 2 有害垃圾 3 其他垃圾
// 不能重复
var that = this;
that.newdata();
},
newdata(current,arr){
//每次操作过后数组更新一次
var that = this;
var current = that.data.current;
var arr = that.data.arr;
var currentIndex = Math.floor(Math.random() * arr.length)
var newarr = arr.filter(function (currentvalue, index, array) {
return index != currentIndex
})
if (arr.length === 0 ){
wx.showToast({
title: '恭喜闯关成功',
})
return
}
that.setData({
current: arr[currentIndex],
arr: newarr
})
},
scoreAdd() {
//分数添加
var that = this;
var score = that.data.score;
score += 2;
that.setData({
score: score
})
},
scoreReduce() {
//分数减去
var that = this;
var score = that.data.score;
score -= 1;
that.setData({
score: score
})
},
select(type){
//区分点击按钮
var that = this;
var current = that.data.current;
var arr = that.data.arr;
if (arr.length != 0) {
if (current.type === type) {
that.scale()
that.newdata();
that.scoreAdd()
} else {
that._toast()
that.scoreReduce()
}
} else {
wx.showToast({
title: '恭喜闯关成功',
})
}
},
type1btn() {
//可回收
var that = this;
that.select("1")
},
type2btn() {
//有害垃圾
var that = this;
that.select("2")
},
type3btn() {
//其他垃圾
var that = this;
that.select("3")
},
_toast(){
wx.showToast({
title: '不对应',
})
},
scale: function () {
this.animation.scale(0.6).step()
this.animation.scale(1).step()
this.setData({ animation: this.animation.export() })
}
})
微信小程序 - 仿南湖微科普小程序游戏环节的更多相关文章
- 微信小程序仿朋友圈功能开发(发布、点赞、评论等功能)
微信小程序仿朋友圈功能开发(发布.点赞.评论等功能) 1.项目分析 项目整体分为三个部分 发布 展示 详情页 graph LR 朋友圈发布 --内容发布--> 内容展示 内容展示 --点击展示卡 ...
- 微信小程序--仿微信小程序朋友圈Pro(内容发布、点赞、评论、回复评论)
微信小程序--仿微信小程序朋友圈Pro(内容发布.点赞.评论.回复评论) 项目开源地址M朋友圈Pro 求个Star 项目背景 基于原来的开源项目 微信小程序仿朋友圈功能开发(发布.点赞.评论等功能 ...
- 微信小程序开发公测,小程序账号申请办法攻略
11月3号晚上 10 点,微信公众平台发布公告,宣布微信小程序正式开放公测.此次小程序公测允许开发者将产品提交至微信公众平台审核,但是暂时不支持发布,也就是说普通消费者若想体验小程序,还需要等待一段时 ...
- 挑战App Store,微信通过“跳一跳”秀了一下“小程序”的肌肉
2017年即将结束的时候,微信放了一个大招.随着最新的微信v6.6.1版本更新,基于小程序的"小游戏"板块正式上线.微信上首发的这款"小游戏"叫"跳一 ...
- 微信小程序开发教程 #043 - 在小程序开发中使用 npm
本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...
- 微信小程序开发——前端如何区分小程序运行环境
前言: 之前用vue做h5项目,对于接口请求,都是根据前端访问域名来判断运行环境,然后自动适配对应的服务器地址的.这样的好处就是在开发.测试及发布上线全程都不需要手动去改接口请求地址,只要提前配置好就 ...
- 微信小程序开发——打开另一个小程序
微信小程序打开另一个小程序,有两种方法:1.超链接:2.点击按钮. 全局配置: 跳转到其他小程序,需要在当前小程序全局配置中配置需要跳转的小程序列表,代码如下: App.json { ... &quo ...
- 微信小程序唤起其他微信小程序 / 移动应用App唤起小程序
微信小程序唤起其他微信小程序 / 移动应用App唤起小程序 1. 微信小程序唤起微信小程序 小程序唤起其他小程序很简单 先上链接 小程序跳转小程序 Navigator组件 推荐使用 小程序跳转小程序 ...
- xampp安装和使用:windows和linux使用安装微擎小程序
1.官网下载xampp XAMPP:Apache+MySQL+PHP+PERL,适用于windows+linux+macos x+Solaris等多系统使用 官网地址:https://www.apac ...
随机推荐
- JavaScript颜色选择器的实现
下面的JavaScript取色器可以方便网页设计取色,同时也可以看一下,网上常见的取色器是如何实现的.这里只给出了核心的JavaScript代码,其它部分比如CSS可以参照本页的源代码. JavaSc ...
- 用JQuery实现自定义选择桌面
有些时候,我们可以为用户提供很贴心的功能,比如判断用户是什么时候来访问的,然后给出一句问候,晚上好,下午好之类的.并且更换网页的背景颜色,比如晚上的时候就可以用满天星星的背景,白天就用阳光灿烂,或者特 ...
- tomcat log4j配置
tomcat默认的log使用的是java.util.logging,配置文件在${catalina_base}/conf/logging.properties tomcat日志分类, 1.access ...
- stout代码分析之七:Result类
Result类似于Option和Try类的组合,内部有三种状态 enum State { SOME, NONE, ERROR }; SOME表示Result对象有值 NONE表示Result对象值为空 ...
- SSH 指定密钥,连接远程服务器。
ssh -i /root/.ssh/private.pem user@192.168.1.100 -p 7744 如上, /root/.ssh/private.pem :密钥文件路径user@192. ...
- String作为输出型参数时获取不到值
有时候在一个方法中,我们需要返回多个字符串,而又不想将这些字段包成一个类.此时就需要使用输出型参数. 但是如果将输出型参数的类型声明为String,那么调用该方法后,是获取不到我们想要的值的. 测试代 ...
- LightOJ 1097 - Lucky Number 线段树
http://www.lightoj.com/volume_showproblem.php?problem=1097 题意:一个自然数序列,先去掉所有偶数项,在此基础上的序列的第二项为3,则删去所有3 ...
- Flume 入门--几种不同的Sinks
主要介绍几种常见Flume的Sink--汇聚点 1.Logger Sink 记录INFO级别的日志,一般用于调试.前面介绍Source时候用到的Sink都是这个类型的Sink 必须配置的属性: 属性说 ...
- javascript拖拽原理与简单实现方法[demo]
美国人有一句常用的俗语—“Re-inventing the Wheel”,从字面上来解释就是“重新发明轮子”.可是轮子早已问世,再要去发明岂非劳而无功? 产品经理发下需求,实施者再到网上搜索代码,也许 ...
- 省队集训 Day6 序列
[题目大意] 给出$n$个数的序列$a_1, a_2, ..., a_n$,有$m$次操作,为下面三种: $A~l~r~d$:区间$[l,r]$,全部加$d$. $M~l~r~d$:区间$[l,r]$ ...