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调试工具 Javascript Debug Toolkit 2.0.0版本发布
Dec 02 Javascript
javascript encodeURI和encodeURIComponent的比较
Apr 03 Javascript
基于json的jquery地区联动效果代码
Jul 06 Javascript
javascript语言结构小记(一)
Sep 10 Javascript
一个挺有意思的Javascript小问题说明
Sep 26 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
Jul 15 Javascript
js检查页面上有无重复id的实现代码
Jul 17 Javascript
jquery利用ajax调用后台方法实例
Aug 23 Javascript
基于jquery实现智能提示控件intellSeach.js
Mar 17 Javascript
JS优化与惰性载入函数实例分析
Apr 06 Javascript
Js面试算法详解
Apr 08 Javascript
Angular使用cli生成自定义文件、组件的方法
Sep 04 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利用cookie实现访问次数统计代码
2011/05/19 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
Python中用max()方法求最大值的介绍
2015/05/15 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
Python中is和==的区别详解
2018/11/15 Python
浅析python的优势和不足之处
2018/11/20 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
ziaja齐叶雅官方海外旗舰店:来自波兰的天然护肤品牌
2017/01/02 全球购物
高一自我鉴定
2013/12/17 职场文书
采购经理岗位职责
2014/02/16 职场文书
书香家庭事迹材料
2014/05/09 职场文书
民主生活会剖析材料
2014/09/30 职场文书