原生js 组件化 跑马灯抽奖效果

带作弊(大笑大笑(;

简易原生JavaScript实现跑马灯下过 

 
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        li,.btn{
            width:40px;
            height:40px;
            display:inline-block;
            text-align: center;
            line-height: 40px;
            border: 1px solid #ddd;
            cursor:pointer;
        }
        li:hover,li.hover{
            background:#2a58f5;
            color:#fff;
        }
    </style>
</head>
<body>
    <div id="container">
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
            <li>8</li>
            <li>9</li>
            <li>10</li>
            <li>11</li>
            <li>12</li>
        </ul>
        <p class="btn">开始</p>
    </div>
    <script>

        var create=(function(){
            function create(options){
                this.options=options;
                this.events();
            }
            create.prototype={
                init:function(){
                    var docs=document.querySelectorAll(this.options.el)[0].firstElementChild.children;
                    var a=40,//默认循环5圈  可自定义
                        b=0,
                        me=this,
                        r=parseInt(Math.random()*(docs.length));

                    var s=me.options.defaultChoose?a+Number(me.options.defaultChoose):a+r;
                    loop();
                    function loop(){
                        for(let i=0,len=docs.length;i<len;i++){
                            docs[i].classList.remove("hover");
                        }
                        docs[b].classList.add("hover");
                        if(s<=0) {
                            console.log(b+1);
                            return;
                        }else{
                            s--;
                            b++;
                            b=(b>=docs.length?0:b);
                            setTimeout(function(){
                                loop();
                            },me.options.speed);
                        }
                    }
                },
                events:function(){
                    var me=this;
                    document.querySelectorAll(".btn")[0].addEventListener("click",function(){
                        me.init();
                    },false)
                }
            };

            return create;
        })();

        var app=new create({
            el:"#container",
            defaultChoose:null,//默认选中 下标
            speed:60,//滚动速度 单位毫秒
        });
    </script>
</body>
</html>







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值