接棍游戏

接棍游戏(stick game)

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>接棍游戏</title>
    </head>
    <style>
        *{margin: 0;padding: 0;}
         .container{width: 1100px;margin:10px auto;}
         .head{width: 1000px;position: relative;}
         .lineH{width: 1000px;position: relative;height: 10px;background-color: khaki}
         .lineV{width: 25px;height: 50px;border-radius:5px;position: absolute;background-color: #d21e96;top:10px;}
         /* absolute	生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置             通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 */
         /* border-radius 属性 给div元素添加圆角的边框:注意: 每个半径的四个值的顺序是:左上角,右上			  角,右下角,左下角。如果省略左下角,
            右上角是相同的。如果省略右下角,左上角是相同的。如果省略右上角,左上角是相同的。 */
        .lineV1{left:50px;}
        .lineV2{left:150px;}
        .lineV3{left:250px;}
        .lineV4{left:350px;}
        .lineV5{left:450px;}
        .lineV6{left:550px;}
        .lineV7{left:650px;}
        .lineV8{left:750px;}
        .lineV9{left:850px;}
        .lineV10{left:950px;}
    
    </style>
    <body>
        <div class="container">
            <div class="head">
                <div class="lineH"></div>
                <div class="lineV lineV1"></div>
                <div class="lineV lineV2"></div>
                <div class="lineV lineV3"></div>
                <div class="lineV lineV4"></div>
                <div class="lineV lineV5"></div>
                <div class="lineV lineV6"></div>
                <div class="lineV lineV7"></div>
                <div class="lineV lineV8"></div>
                <div class="lineV lineV9"></div>
                <div class="lineV lineV10"></div>
            </div>
        </div>
        
    </body>
    <script>
        var stickGame=document.getElementsByClassName('lineV');
        var arr=[0,1,2,3,4,5,6,7,8,9];//设置用于代表棍子所在数组中的索引的数组
        var timeArr=[5000,2500,1000];//设置用于存储随机时间的数组  1000毫秒= 1秒
        var timer=setInterval(function(){ //每1000毫秒执行一次
            //setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
            // setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
            // 由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
            //setTimeout作用为隔多少时间(单位为毫秒)后执行某函数或名为XX的函数一次。
            if(arr.length==0){
                clearInterval(timer);
                return;
            }
            //随机获取棍子
            var idx=Math.floor(Math.random()*arr.length);
            //值 = Math.floor(Math.random () * 可能值的总数+ 第一个可能的值 )
            var stickGameIndx=arr[idx];
            arr.splice(idx,1); //从用于存放索引的数组arr中,删除被取出的数值
            //splice() 方法用于添加或删除数组中的元素。如果仅删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。
            //规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
            console.log(stickGame[stickGameIndx]);
            console.log(stickGame[stickGameIndx].style)
            //点击消失
            if(stickGame[stickGameIndx].onclick=function(){
                stickGame[stickGameIndx].style.display="none";
                return;
            });
            var stickTop=10;
            var timer2=setInterval(function(){
                if(stickTop>=500){
                   stickGame[stickGameIndx].style.display="none";
                   clearInterval(timer2);
                }
                stickTop+=10;
                stickGame[stickGameIndx].style.top=stickTop+"px";

            },50);           
        },timeArr[Math.floor(Math.random()*timeArr.length)]);
// Math.ceil()向上舍入小数,它将数值向上舍入为最接近的整数
// Math.floor() 向下舍入小数点,它将数值向下舍入为最接近的整数          
// Math.round()标准的四舍五入,它将数值四舍五入为最接近的整数
    </script>
</html>

运行结果如图:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值