js实现简单掷骰子效果


Posted in Javascript onOctober 24, 2019

本案例要实现的掷骰子效果:

点击按钮,使骰子转动起来,转动随机时间之后,自动停止在某一个点数上。

思路:

点击按钮之后,将原本静态的骰子图片替换为一个动态转动的gif图片;
创建定时器,实现随机时间之后,动态的图片随机替换为1~6点图片的任意一张图片。

注意:

1、要考虑用户点击一次按钮后再连续多次点击按钮的情况。
2、为了防止不必要的问题,需要设置使定时器执行完毕一次之后,再点击按钮才有效。
3、这里设置了一个开关:
用户点击按钮时,先判断开关是否关闭,如未关闭,可执行函数内容;
若开关已关闭,则不执行函数体,即没有任何效果。

css部分

*{margin:0; padding:0}
#container{padding:10px;width:200px;margin:auto;height:200px;border:orange solid 1px; border-radius:8px;}
#dice{width:200px;height:200px;}
#command{margin:auto;width:100px;}
#command input{width:100px;height:30px;border:#ccc solid 1px;border-radius:8px;}

html部分

<div id="container">
  <img src="img/dice_1.png" id="dice" alt="">
</div>
<div id="command">
  <input type="button" onclick="shake();" value="摇一摇">
</div>

js部分

// 封装函数,便于通过id获取元素
function $(id) {
 return document.getElementById(id);
}

// 生成随机数
function rand(min,max){
 if (min>max) {
 var mid = min;
 min = max;
 max = mid;
 }
 //65<=Math.random()*26+65<26+65
 return parseInt(Math.random()*(max-min+1)+min);
}

//创建一个开关,默认为true(打开状态)
var oPlay = true;

//点击事件
function shake() {
 if(oPlay){ //判断开关的状态,若为true,执行下边的内容
 oPlay = false; //开始执行后,关闭开关
 $("dice").src = "img/diceDynamic.gif"; //将静态图替换为动图
 
 //随机时间后,将动态图替换为随机点数的图片
 var timer = setTimeout(function(){ 
  $("dice").src = "img/dice_" + rand(1,6) + ".png";
  oPlay = true; //执行完毕后,再打开开关
 },rand(500,3000));
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery Autocomplete 结合asp.net使用要点
Oct 29 Javascript
JS可以控制样式的名称写法一览
Jan 16 Javascript
js强制把网址设为默认首页
Sep 29 Javascript
Bootstrap3学习笔记(三)之表格
May 20 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
JS前向后瞻正则表达式定义与用法示例
Dec 27 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
Jan 20 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
Jul 10 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
vue-自定义组件传值的实例讲解
Sep 18 Javascript
基于element-ui封装表单金额输入框的方法示例
Jan 06 Javascript
ReactRouter的实现方法
Jan 25 Javascript
使用jQuery实现掷骰子游戏
Oct 24 #jQuery
jquery实现掷骰子小游戏
Oct 24 #jQuery
JS控制GIF图片的停止与显示
Oct 24 #Javascript
js计时事件实现圆形时钟
Mar 25 #Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
Oct 24 #Javascript
vue项目使用.env文件配置全局环境变量的方法
Oct 24 #Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
Oct 24 #Javascript
You might like
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
2017/05/22 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
Python实现程序判断季节的代码示例
2019/01/28 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
详解Python time库的使用
2019/10/10 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
Python如何获取文件路径/目录
2020/09/22 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
Weblogc domain问题
2014/01/27 面试题
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
大学生涯自我鉴定
2014/01/16 职场文书
模具毕业生推荐信
2014/02/15 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python