使用vue编写一个点击数字计时小游戏,列入你在文本框中输入3,点击开始会生成一个3行3列的表格,表格数据为1-9随机排列,这时候从1开始点击,按顺序点到9,当按正确顺序点击完毕,会提示所用的时间,如果顺序没有按对,会提示游戏结束.
1.首先下载vue源码,下载地址http://cn.vuejs.org
2.jquery是在面向dom操作,而vue是面向数据操作的,所以使用vue最好不要去操作dom,尽量发挥出vue的独到之处,(如果使用过angularjs可能更容易理解)
3.建立一个普通的html文件,在头部引用vue的源文件
<head> <meta charset="utf-8" /> <title></title> <script type="text/javascript" src="js/vue.js"></script> </head>
4.简单的页面
1)首先v-model,数据的双向绑定,根据你文本框输入的值变化而变化.
2)@click绑定一个click事件,其中@是v-on的缩写.当然绑定事件可以带参数例如@click='time(item)'.
3)v-for="(index, item) in list",循环数组,index为数组的角标,item为数组中的值.
可以看一下vue文档进一步了解.
<body>
<div id="play">
<span>输入数字,点击开始,会生成对应输入数字的表格,从表格中数字1开始点击,按顺序点击到最后....</span><br />
<input type="number" v-model="num" />
<button @click='arr'>开始</button>
<br />
<div v-for="(index, item) in list">
<template v-if="index % num == 0 && index!=0"><br><br><br></template>
<div style="float: left;"><button class="ibutton" @click='time(item)'>{{item}}</button></div>
</div>
</div>
</body>
5.vue操作
1)首先要new出一个Vue的实例,el绑定你的dom,这里用id作为标识
2)data这是vue要操作的数据,num文本框的值(默认为2),list[]根据文本框值,生成的list,startTime点击表格的开始时间,endTime点击表格的结束时间,checkNum当前选中的数字.
3)methods中有两个方法arr用来根据文本框的值,生成一个数组,生成一个文本框值的平方长度,且不会重复的数组,数组的值为1-文本框值的平方,加入文本框的值为3,则生成的数组长度为9,数组的内容为1-9且不重复.
time计算点击的开始时间和结束时间,用check]Num来控制点击的顺序.
<script>
new Vue({
el: '#play',
data: {
num: 2,
list: [],
startTime: 0,
endTime:0,
checkNum:0
},
methods: {
arr: function() {
if(this.num > 20){
alert('数值过大,浏览器会死掉,最好不要大于20');
return;
}
this.checkNum = 0;
var arrlength = this.num * this.num;
var arr = new Array(arrlength);
var index = 0;
for(var i = 1; i <= arrlength; i++) {
//生成随机数
var num = Math.random(); //Math.random():得到一个0到1之间的随机数
num = Math.ceil(num * arrlength); //num*?的取值范围在0~?之间,使用向上取整就可以得到一个1~?的随机
if(arr[0] != 0) {
var flag = false; // 控制是否存在重复元素
// 遍历生产数组中的元素
for(var j = 0; j < arr.length; j++) {
if(num != arr[j]) {
flag = true;
} else {
flag = false;
break;
}
}
if(flag == true) {
arr[index++] = num;
} else {
// 发现有重复元素重新产生新的随机数
i--;
}
} else {
arr[index++] = num;
}
}
this.list = arr;
},
time: function(item){
if(this.checkNum+1 != item){
alert('game over');
this.checkNum = 0;
return;
}
var date = new Date();
if(item == 1){
this.startTime = date.getTime();
}
if(item == this.num * this.num){
this.endTime = date.getTime();
var useTime = ((this.endTime - this.startTime)/1000).toFixed(2);
alert('使用了'+useTime+'秒');
this.checkNum = 0;
return;
}
this.checkNum = item;
}
}
})
</script>
6.css代码
<style>
.ibutton{
margin-top: 10px;
margin-left: 10px;
color: #fff;
border: 1px solid #8a6de9;
background-color: #8a6de9;
font-size: 14px;
padding: 6px 12px;
border-radius: 7px;
width: 50px;
height: 40px;
}
</style>
7.在某些特定的场景使用vue来完成一个功能要比jquery简单的多,但是jquery还是很强大的,根据不同的场景运用不同的技术,更快更好的完成自己想要的功能.
本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍使用Python写一个小游戏,包括了使用Python写一个小游戏的使用技巧和注意事项,需要的朋友参考一下 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏、后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下其中的有趣之处。本次开发的游戏叫做alien invasion。 安装pygam
本文向大家介绍C语言编一个数字益智小游戏,包括了C语言编一个数字益智小游戏的使用技巧和注意事项,需要的朋友参考一下 程序功能及运行情况 设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力。游戏共设有四个不同的小游戏,分别是一位数四则运算、两位数四则运算、找最值游戏、排序游戏。程序能实现产生随机题目,并能检验玩家的作答是否正确。为了小朋友能感受到游戏的乐趣,特意设置了得分
本文向大家介绍Javascript编写2048小游戏,包括了Javascript编写2048小游戏的使用技巧和注意事项,需要的朋友参考一下 去年2048很火, 本来我也没玩过, 同事说如果用JS写2048 只要100多行代码; 今天试了一下, 逻辑也不复杂, 主要是数据构造函数上的数据的各种操作, 然后通过重新渲染DOM实现界面的更新, 整体不复杂, JS,css,和HTML合起来就300
本文向大家介绍JavaScript编写一个贪吃蛇游戏,包括了JavaScript编写一个贪吃蛇游戏的使用技巧和注意事项,需要的朋友参考一下 写的比较乱,有个逻辑错误:蛇吃了果果后应该是蛇尾加一节,写成了蛇头部增加一节- -。 可用键盘的上下左右键操作; 效果图: 代码如下: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!
本文向大家介绍使用vue写一个tab切换相关面试题,主要包含被问及使用vue写一个tab切换时的应答技巧和注意事项,需要的朋友参考一下 v-for循环,利用下标和v-show显示
我创建了一个基本的javascript计数器。我想在每次点击计数器时对每个数字应用一个转换比例。(基本上每次单击计数器时,我都希望数字稍微增长,然后返回到基本大小)。 我不知道如何循环,这样它就会在每次递增或递减时发生。 下面是我的代码: 这里是我要添加的动画
本文向大家介绍用Python写一个无界面的2048小游戏,包括了用Python写一个无界面的2048小游戏的使用技巧和注意事项,需要的朋友参考一下 以前游戏2048火的时候,正好用其他的语言编写了一个,现在学习python,正好想起来,便决定用python写一个2048,由于没学过python里面的界面编程,所以写了一个极其简单的无界面2048。游戏2048的原理和实现都不难,正好可以拿来练手,要
本教程将教你如何使用 Kivy 编写一款乒乓球游戏。我们将从一个基本的应用程序开始,描述创建这个游戏的每个步骤。 Kivy 是用 Python 和 Cython 编写的,基于 OpenGL ES 2,支持各种输入设备并拥有丰富的部件库。使用相同的代码,你可直接实现多平台应用,包括 Windows、macOS、Linux、Android 和 iOS。所有 Kivy 部件都支持多点触控。