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 相关文章推荐
js计数器代码
Nov 04 Javascript
基于jquery的时间段实现代码
Aug 02 Javascript
javascript的事件触发器介绍的实现
Jun 05 Javascript
JavaScript检测字符串中是否含有html标签实现方法
Jul 01 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
Apr 21 Javascript
JavaScript 对象详细整理总结
Sep 29 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
Dec 26 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
Jan 22 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
Mar 15 Javascript
Vue.js教程之axios与网络传输的学习实践
Apr 29 Javascript
vue router-link传参以及参数的使用实例
Nov 10 Javascript
ES6入门教程之变量的解构赋值详解
Apr 13 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连接MSSQL方法汇总
2016/02/05 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
Jquery的each里用return true或false代替break或continue
2014/05/21 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
学习十八大精神心得体会
2013/12/31 职场文书
小学英语教学反思
2014/01/30 职场文书
仓库管理计划书
2014/05/04 职场文书
微笑服务标语
2014/06/24 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
工程部主管岗位职责
2015/02/12 职场文书
会计出纳岗位职责
2015/03/31 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
Python机器学习之逻辑回归
2021/05/11 Python
pytorch中的numel函数用法说明
2021/05/13 Python
欧元符号 €
2022/02/17 杂记