JS仿写刮刮乐小例子

提示:js仿写刮刮乐小例子

文章目录


前言

学习仿写前端用js做一个刮刮乐的案例


一、实现效果

二、实现步骤

1.简单书写HTML及CSS页面

代码如下:

<style>
    *{
        margin: 0;
        padding: 0;
    }
    .prize{
        position: absolute;
        width: 300px;
        height: 150px;
        text-align: center;
        line-height: 150px;
        font-size: 30px;
        color: red;
    }
    #canvas{
        border: 1px solid #000;
        position: absolute;
        z-index: 2;
    }
</style>
<body>
    <canvas id="canvas" width="300" height="150"></canvas>
    <div class="prize">谢谢惠顾</div>
</body>

2.书写js代码

代码如下:

<script>
    window.onload =function(){
        var canvas = document.getElementById("canvas");
        var ctx =canvas.getContext("2d");//绘制图形
        ctx.beginPath();//开始路径
        ctx.rect(0,0,300,150);//绘制矩形
        ctx.fillStyle="#c0c0c0";//填充颜色
        ctx.fill();//填充
        ctx.closePath();//关闭

        //按下鼠标,启动消除事件
        canvas.onmousedown = function(event){
            canvas.onmousemove =function(event){
                var x = event.clientX;//获取鼠标X、Y坐标
                var y = event.clientY;
                ctx.clearRect(x,y,50,50);//清除绘制及方块大小
            }
            
        };
        //松开鼠标,取消事件
        canvas.onmouseup = function(event){
            canvas.onmousemove = null;
        };
        var arr =["一百万","一百元话费","海景别墅","一等奖","二等奖","安慰奖","特别奖","谢谢惠顾","你是猪"]//选项好像不能超过十,缺点
        var prize =document.querySelector(".prize");
        var i =Math.random()*10;//随机数
        if(i>arr.length-1){
                i= i%arr.length//超过数组数则除以取余数以达到循环
                i=Math.floor(i)
        }else{ 
            i=Math.floor(i)}
       
        prize.innerHTML = arr[i];
        console.log(arr.length-1)//观察生成的随机数,看奖项是否与数组相对应
        
    
    }
</script>

 最后的随机数生成可能有些冗余,下面是另一种方法。

        var arr =["一百万","一百元话费","海景别墅","一等奖","二等奖","安慰奖","特别奖","谢谢惠顾","你是猪"]//选项好像不能超过十,缺点
        var prize =document.querySelector(".prize");
        // var i =Math.random()*10;//随机数
        // if(i>arr.length-1){
        //         i= i%arr.length//超过数组数则除以取余数以达到循环
        //         i=Math.floor(i)
        // }else{ 
        //     i=Math.floor(i)}
       
        // prize.innerHTML = arr[i];
        // console.log(arr.length-1)//观察生成的随机数,看奖项是否与数组相对应
        var i =Math.floor(Math.random()*arr.length);
        console.log(i)
        prize.innerHTML = arr[i]
    
    }

总结

仿写刮刮乐小案例,学到了注意细节不能打错字母,实践和看视频学习还是有区别的,以后要多多实践。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值