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替换table中的内容并显示进度条的代码
Aug 02 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
Oct 17 Javascript
javascript中动态函数用法实例分析
May 14 Javascript
基于Jquery实现表单验证
Jul 20 Javascript
原生js实现图片轮播特效
Dec 18 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
Jan 26 Javascript
node.js中fs.stat与fs.fstat的区别详解
Jun 01 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
Sep 02 Javascript
基于JavaScript表单脚本(详解)
Oct 18 Javascript
vue2单元测试环境搭建
May 24 Javascript
Element-ui upload上传文件限制的解决方法
Jan 22 Javascript
关于对TypeScript泛型参数的默认值理解
Jul 15 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函数
2006/10/09 PHP
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
javascript中创建对象的三种常用方法
2010/12/30 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
jquery实现吸顶导航效果
2020/01/08 jQuery
jquery实现图片放大镜效果
2020/12/23 jQuery
python设计模式大全
2016/06/27 Python
python实现单向链表详解
2018/02/08 Python
Django中的forms组件实例详解
2018/11/08 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
我的动漫时代的创业计划书范文
2014/01/27 职场文书
医院党员公开承诺书
2014/08/30 职场文书
学习党史心得体会2016
2016/01/23 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python