抽奖小程序、点名器案列~

在上一篇中,我们熟悉了JS 如何实现轮播图。
上文链接传送门: JS 实现轮播图~:
实际上这类抽奖、和点名器从本质上我们可以将其做成如同轮播图一样的列子。让既定的选项滚动起来,只不过我们需要在页面中加入开始和结束按钮,并个抽奖、和点名器绑定上相应事件。
如此!抽奖小程序、点名器就成了

技术要点:

● 实现自动无缝滚动
● 做好单个图片伪类,实现跑马灯效果
● 通过按钮控制滚动,实现开始与暂停
●最后弹出输出最后停止时的结果

step1:存放数据

创建一个数组,存放所需的数据。然后通过循环,动态添加元素。此法有利于页面优化,同事时减轻书写量。

var data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24];
        for(let i = 0;i<data.length;i++){
            var li = $("
  • "+data[i]+"
  • "
    ); $("#ul").append(li); }
    step2:设置开关按钮

    设置按钮

    HTML : 
      step3:为开关绑定事件,来控制点名器/抽奖系统的运行/停止
        var i = 0,timeId;
              $("#start").click(function(){
                 clearInterval(timeId);
                  timeId = setInterval(function(){
                      $("li").removeClass("current");
                      $("li").eq(i).addClass("current");
                      i++;
                      if(i == 24) i = 0;
                  },200) 
              });
              $("#stop").click(function(){
                  clearInterval(timeId);
                  alert("恭喜!" + $("li").eq(i-1).text()+"中奖(起来回答问题)");
              })
      

      成品案列:
      抽奖小程序、点名器案列~_第1张图片

      点击开始-效果

      抽奖小程序、点名器案列~_第2张图片

      点击停止-效果

      代码解析:
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Document</title>
          <style>
               ul{
                  list-style: none;
                  width: 800px;
                  position: absolute;
                  top: 300px;
                  left:300px;
                
              }
              li{
                  float: left;
                  width: 100px;
                  height: 100px;
                  text-align: center;
                  line-height: 100px;
                  border-radius: 50px;
                  background-color: skyblue;
                  color: aqua;
                  font-size: 24px;
                  cursor: pointer;
              }
              .current{
                  background-color: mediumpurple;
                  color:pink;
              }
              input{
              	margin-top: 630px;
              	margin-left: 450px;
              }
          </style>
      </head>
      <body>
          <ul id="ul"></ul>
          <input type="button" value="开始" id="start">
          <input type="button" value="停止" id="stop">
          <script src="jquery-1.12.4.js"></script>
          <script>
              var data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24];
              for(let i = 0;i<data.length;i++){
                  var li = $("
    • "+data[i]+"
    • "
      ); $("#ul").append(li); } var i = 0,timeId; $("#start").click(function(){ clearInterval(timeId); timeId = setInterval(function(){ $("li").removeClass("current"); $("li").eq(i).addClass("current"); i++; if(i == 24) i = 0; },200) }); $("#stop").click(function(){ clearInterval(timeId); alert("恭喜!" + $("li").eq(i-1).text()+"中奖(起来回答问题)"); }) </script> </body> </html>

      你可能感兴趣的:(抽奖小程序、点名器案列~)