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插件集合
Jan 12 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
javascript实现无限级select联动菜单
Jan 02 Javascript
JavaScript实现页面跳转的方式汇总
May 16 Javascript
AngularJS 所有版本下载地址
Sep 14 Javascript
简单实现node.js图片上传
Dec 18 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
Jul 03 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
Oct 28 jQuery
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
如何对react hooks进行单元测试的方法
Aug 14 Javascript
JS数组及对象遍历方法代码汇总
Jun 16 Javascript
mapboxgl实现带箭头轨迹线的代码
Jan 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中使用Oracle数据库(1)
2006/10/09 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
php对象工厂类完整示例
2018/08/09 PHP
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
js中less常用的方法小结
2017/08/09 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
用友笔试题目
2016/10/25 面试题
年终考核评语
2014/01/19 职场文书
主持人开幕词
2015/01/29 职场文书
道歉情书大全
2015/05/12 职场文书
节约用水广告语60条
2019/11/14 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python