js 简单摇筛子

前言

1、最近正好有在搜有关摇骰子的游戏,在网上看到了一篇比较不错的案例,修改了原来的代码给大家分享一下

正文

这个摇骰子的动作主要是通过定时器改变骰子的图片实现的,比较简单。下面看看代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>摇骰子</title>
        <style type="text/css">
            .dice{
                width: 100px;
                height: 100px;
                background-image: url(1.jpg);
                cursor: pointer;
                position: relative;

            }       
        </style>
    </head>
    <body>
        <div class="dice">

        </div>
    </body>
    <script src="jquery-3.3.1.js"></script>
    <script type="text/javascript">
       $(function(){
           let dice = $(".dice");
           dice.on('click',function(){
               dice.css('cursor','default');
               let num = Math.ceil(Math.random()*6);
               console.log(num);
               
               setTimeout(function(){
                   dice.css('background-image','url(d1.jpg)');
               },200);
               setTimeout(function(){
                   dice.css('background-image','url(d2.jpg)');
               },400);
               setTimeout(function(){
                   dice.css('background-image','url(d3.jpg)')
               },600);
              setTimeout(function(){
                  dice.css('background-image','url('+num+'.jpg')
              },700);
           });
       });
    </script>
</html>

然后是用到的图片

前面的是六个面,后面是演示动作的图,看起来就像是动的。

点击后通过定时器按顺序显示,最后通过随机数显示骰子的面。

这里和原来参考的代码不同的有两个地方一是定时器的时间(原来的代码中所有定时器时间都是200),二是最后显示的面原来的代码没有加定时器。

原来的我直接用有些问题,动作图由于定时器时间相同,你只能看到最后一张。

然后我查了setTimeout的用法。如果多个setTimeout执行,又是需要顺序显示图片,那时间需要设置不同。尽管代码还是会按顺序执行。但是由于多张图几乎同时显示,肉眼是只能看到一张的。只有时间不同才能看到多张图,产生骰子转动的错觉

参考的别人的代码地址(感谢)

https://www.cnblogs.com/momobutong/p/8601860.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值