你的鼠标有多快-小游戏

HTML

<div class="box"><h3>你的鼠标有多快?</h3><p>游戏说明:点击'开始游戏',随机掉下QQ表情,点中它,千万别让它掉下去!!</p><input type="button" name="" id="" value="开始游戏" /><div class="cont"><div class="fen"><span>得分:0分</span><span>失分:0分</span></div><div id="game"></div></div>
</div>
<script src="mTween.js" type="text/javascript" charset="utf-8"></script>
<script src="tween.js" type="text/javascript" charset="utf-8"></script>

  

CSS

body{background: #ccc;
}
*{margin: 0;padding: 0;
}.box{width: 800px;margin: 20px auto;text-align: center;
}
.cont{width: 100%;
}
.cont:after{display: block;clear: both;content: "";
}
p{line-height: 30px;
}
input{padding: 5px 10px;margin-bottom: 10px;
}
.fen{float: left;width: 150px;padding: 10px;border: 1px solid #000;border-right: 0;background: #EBB22B;text-align: left;
}
.fen span{display: block;
}
#game{width: 547px;height: 400px;border: 1px solid #000;float: left;background: #fff;position: relative;overflow: hidden;text-align: center;font-size: 30px;font-weight: bold;line-height: 400px;
}
#game i{position: absolute;top: 0px;left: 0;width: 20px;height: 20px;background: red;border-radius: 50%;
}

JS

var game=document.getElementById("game");
var Btn=document.getElementsByTagName("input")[0];
var aIs=document.getElementsByTagName("i");
var aSpan=document.getElementsByTagName("span");
var num=0;
var num1=0
var timer=null;
var time1=3000;
var time2=2000;Btn.οnclick=function(){//修改按钮文字this.value="游戏进行中...";fn();timer=setInterval(function(){fn();},time1)}function fn(){//生成掉落的圆点game.innerHTML+="<i style='left: "+Math.round( Math.random()*520)+"px;'></i>";var len=aIs.length;for (var i=0;i<len;i++) {//圆点掉落mTween(aIs[i],"top",400,time2,"linear");mTween(aIs[i],"left",Math.round( Math.random()*530),time2,"linear",function(){//运动结束失分加1aSpan[1].innerHTML="失分:"+(aIs.length-num)+"分";//当失分大于10之后,游戏结束,不在生成圆点if(aIs.length-num>9){clearInterval(timer);Btn.value="游戏结束";}});aIs[i].index=i;//鼠标移入清除运动aIs[i].οnmοuseοver=function(){clearInterval(this["top"]);clearInterval(this["left"]);}//鼠标点击背景变为黑色,左右抖动,透明度变为0,得分加1,失分保持原先的值aIs[i].οnclick=function(){var that=this.index;num++;this.style.background="#000";shake(this,"left",function(){aIs[that].style.opacity="0";aSpan[0].innerHTML="得分:"+num+"分";aSpan[1].innerHTML="失分:"+(aIs.length-num)+"分";});}}//每次点击的圆点达到20个之后速度加快,都缩短100msif(num%20==0){time1-=100;time2-=100;//当时间减为0,并且失分少于10个之后,游戏终止,并清除定时器,显示恭喜if(time1<=0&&aIs.length-num<9){time1=0;time2=0;game.innerHTML="大神,恭喜您通关了!!"Btn.value="游戏结束";clearInterval(timer);}}}//抖动函数
function shake(obj,attr,fn){var timer=null;var arr=[];for(var i=20;i>0;i-=2){arr.push(i,-i);}arr.push(0);var num=0;clearInterval(timer);timer=setInterval(function(){var seep=parseInt(getStyle(obj,attr))+arr[num];num++;obj.style[attr]=seep+"px";if(num===arr.length){clearInterval(timer);if(fn){fn();}}},30)
}
//获取样式
function getStyle(obj,attr){if(obj.currentStyle){return obj.currentStyle[attr];}else{return getComputedStyle(obj)[attr];}
}

  

转载于:https://www.cnblogs.com/yangxue72/p/7998810.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

input文件上传代码片段

需求&#xff1a;自己留个记录 <div class"button—2" click"uploadFile"><input type"file" ref"file" multiple"multiple" change"fileChange" style"display:none">上传</div>as…

android图片查看器,实现图片加载进度监听,实现保存图片

1、添加依赖 implementation com.github.bumptech.glide:glide:4.6.1 compile com.github.chrisbanes:PhotoView:2.0.0 compile com.squareup.okhttp3:okhttp:3.9.0 2、实现fragmentactivity&#xff1a; /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;131647168…

iPhone X Web 设计

iPhone X Web 设计 原文地址&#xff1a;https://webkit.org/blog/7929/designing-websites-for-iphone-x/ 开箱即用(开发者无需进行任何设置)&#xff0c;在iPhone X中&#xff0c;Safari 就可以完美的在全面屏上显示你既有的网站。网页内容会自动插入到显示的安全区域以至于不…

python 文件读取报错 ‘utf-8‘ codec can‘t decode

初学python遇到一个文件读取遇到问题 utf-8 codec cant decode byte 0xb0 in position 611我报错的写法 with open(filename,r) as f:LISTf.readlines()实际问题是我的电脑默认读取编码为utf-8,但是文件的编码为gbk,只要指定好编码为gbk就OK。 with open(filename,r,encodin…

Android 屏幕灭屏亮屏广播,屏幕灭屏亮屏监听,广播实现按键监听

service 类注册广播进行监听 /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;13164716840163.com* 日期&#xff1a;2018/9/27 09*/ public class Serview extends Service {/*** 广播接受者*/private BroadcastReceiver mBatInfoReceiver;private String TAG &quo…

python WindroseAxes 报错 has no attribute ‘Appender‘

引用代码 from windrose import WindroseAxes报错&#xff1a;module matplotlib.docstring has no attribute Appender 问题是我目前安装的python 3.8&#xff0c;windrose也要安装最新的。 安装方法 第一种&#xff1a; pip install githttps://github.com/python-windr…

[转载] 我的WafBypass之道(SQL注入篇)

我的WafBypass之道&#xff08;SQL注入篇&#xff09; Web安全 作者&#xff1a;先知技术社区 2016-11-23 7,566【本文转自安全脉搏战略合作伙伴先知技术社区 原帖地址 安全脉搏编辑huan9740整理发布】 0x00 前言 去年到现在就一直有人希望我出一篇关于waf绕过的文章&#xf…

Android 设置系统闹钟,日历写入。实现demo

实现方法1——代码闹钟 可变时间格式&#xff1a;"yyyy-MM-dd HH:mm:ss" 保存闹钟时间&#xff1a; SimpleDateFormat df new SimpleDateFormat("HH:mm");//设置日期格式 String thistime df.format(new Date()); SharedPreferences sharedPreferenc…

centos 安装 fortran

1、 yum install gcc-c2、 yum install gcc-gfortran

前端学习(2677):懂代码之表格BaseTable删除操作

1第一步 <el-table-column label"操作" width"180" align"center"><template slot-scope"scope"><el-buttontype"text"icon"el-icon-edit"click"handleEdit(scope.$index, scope.row)"&…

Linux之Ubuntu下安装屏幕录像软件(SimpleScreenRecorder)【摘抄】

本博文全文属于摘抄自&#xff1a; (见文末处参考文献)(由于担心原博文丢失&#xff0c;以后查找不到&#xff0c;故此原文摘抄&#xff0c;以备日后多次查阅) 在日常工作中&#xff0c;有时需要对屏幕进行录像&#xff0c;以制作讲解文档等。下面介绍在Linux上安装屏幕录像软件…

Android精准计步器

demo链接&#xff1a;https://download.csdn.net/download/meixi_android/10690974 工具类&#xff1a; public class StepDetector implements SensorEventListener {//存放三轴数据float[] oriValues new float[3];final int ValueNum 4;//用于存放计算阈值的波峰波谷差值…

docker 目录 挂载

docker容器启动的时候&#xff0c;如果要挂载宿主机的一个目录&#xff0c;可以用-v参数指定。 譬如我要启动一个centos容器&#xff0c;宿主机的/share目录挂载到容器的/share目录&#xff0c;可通过以下方式指定&#xff1a; docker run -it -v /share:/share centos /bin/…

工作177:表单重置项目处理

<template><!--新建账号对话框--><el-dialog title"新建账号" :visible.sync"dialogFormVisible" close"close"><el-form ref"form" :model"form" size"medium" :label-width"formLabe…

docker删除所有镜像和容器

需求&#xff1a;重新进行开发&#xff0c;需要清空目前的镜像和容器。 1、删除容器 1&#xff09;首先需要停止所有的容器 docker stop $(docker ps -a -q) 2&#xff09;删除所有的容器&#xff08;只删除单个时把后面的变量改为image id即可&#xff09; docker rm $(d…

Ubuntu配置完全教程

前言 最近将旧电脑换成了Ubuntu系统&#xff0c;在网上找了许多优化和配置教程&#xff0c;今天整理一份完整的教程给大家分享 系统清理 卸载LibreOffice libreoffice事ubuntu自带的开源office软件&#xff0c;体验效果不如windows上的office&#xff0c;于是选择用WPS来替代&a…

Android assets文件使用

1、在main文件夹下创建assets文件夹 2、assets文件夹下可创建image文件夹&#xff0c;text文件夹&#xff0c;image文件夹下存放jpg或png图片。text文件夹下存放.txt文本 3、读取assets文件内容&#xff1a; entity类&#xff1a; public class Book {private static final…

工作176:表单重置

复制代码 <el-form :model"loginForm" ref"loginFormRef"> // 1. 需要给表单指定 ref 属性 , 可以理解为表单的 名字<!-- 用户名 --><el-form-item prop"username"> // 2. 需要给 需要重置 的表单项指定 prop 属性, 值…

《掌握需求过程》阅读笔记05

需求策略需要平衡需求知识、活动和人。沟通需求知识的一致的语言&#xff0c;发现和传播知识的活动&#xff0c;参与的人&#xff0c;这些是影响需求策略的所有变量。 需求策略是一个活动的框架&#xff0c;需要根据给定的项目轮廓&#xff0c;执行这些活动。在工作中常遇到的轮…