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菜单插件HoverTree仿京东无限级菜单
Dec 18 Javascript
百度地图给map添加右键菜单(判断是否为marker)
Mar 04 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
May 11 Javascript
jquery获取easyui日期控件的值实现方法
Nov 09 Javascript
详解js界面跳转与值传递
Nov 22 Javascript
JavaScript轻松创建级联函数的方法示例
Feb 10 Javascript
js事件冒泡与事件捕获详解
Feb 20 Javascript
捕获未处理的Promise错误方法
Oct 13 Javascript
Angular使用操作事件指令ng-click传多个参数示例
Mar 27 Javascript
JS实现的透明度渐变动画效果示例
Apr 28 Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 Javascript
使用flow来规范javascript的变量类型
Sep 12 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 方便水印和缩略图的图形类
2009/05/21 PHP
Codeigniter检测表单post数据的方法
2015/03/21 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
pandas 选择某几列的方法
2018/07/03 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
没编程基础可以学python吗
2020/06/17 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
给女儿的表扬信
2014/01/18 职场文书
社区矫正工作方案
2014/06/04 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
六年级学生评语大全
2014/12/26 职场文书
2015年复活节活动总结
2015/02/27 职场文书
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL