美文网首页
wheelSurf:轮播抽奖

wheelSurf:轮播抽奖

作者: 天幽 | 来源:发表于2018-06-19 15:23 被阅读0次

wheelSurf:轮播抽奖🎰

概要

一款简单便捷用于旋转轮播抽奖的model分享给大家。

exampleImg

(PS:示例图和下方代码布局不同,各位根据自己需求进行调整)

代码

依赖库:jQuery

example

index.html

<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    <link rel="stylesheet" href="./style.css">
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
</head>

<body>
    <div id="turntable-box">
        <div class="gift gift1">1</div>
        <div class="gift gift2">2</div>
        <div class="gift gift3">3</div>
        <div class="gift gift0">8</div>
        <div>
            <button style="width:100px; height:100px;">com on</button>
        </div>
        <div class="gift gift4">4</div>
        <div class="gift gift7">7</div>
        <div class="gift gift6">6</div>
        <div class="gift gift5">5</div>
    </div>

    <script src="./main.js"></script>
</body>

</html>

style.css

#turntable-box {
    width: 500px;
    height: 500px;
    margin: 0 auto;
    background-color: #dfdfdf;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-content: space-between;
}
#turntable-box > div {
    width: 32%;
    height: 32%;
    border: 1px solid #000;
    background-color: #fff;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
}

main.js

var stopStep = 1; //表示最终奖品位置  
var runT = null; //转动方法  
var step = -1; //计算转动的步数,控制转速和停止  
var during = 8; //转速,起始转速为8
var isRun = false; //是否正在运行,防止重复点击

$("button").click(function () {
    if (isRun) return;
    isRun = true;
    stopStep = Math.floor(Math.random() * 8 + 1);
    console.log('最后停止奖品位置', stopStep);
    runT = setTimeout(runF, 100);
});

function runF() {

    if (step >= (32 + stopStep)) { //设置转动多少圈(奖品的倍数),当进行步数step>=(最大步数+奖品位置步数),停止动画,用户获得奖品
        $(".gift" + (step % 8)).css("background-color", "#F00");
        step = stopStep; //当前奖品停止位置赋值给step,用于下次开始抽奖起始使用
        isRun = false;
        clearTimeout(runT); //停止转动  
        alert("you get" + step);
        return;
    }

    if (step >= (24 + stopStep)) { //在即将结束转动前减速  
        during += 1;
    } else { //控制中间转速
        if (during <= 2) { //保证最低转速
            during = 2;
        }
        during--;
    }

    step++;

    $(".gift").each(function () {
        $(this).css("background-color", "#FFF");
    });

    $(".gift" + (step % 8)).css("background-color", "#F00");

    runT = setTimeout(runF, during * 50);
}

Github

相关文章

  • wheelSurf:轮播抽奖

    wheelSurf:轮播抽奖? 概要 一款简单便捷用于旋转轮播抽奖的model分享给大家。 (PS:示例图和下方代...

  • 利用swiper+AJAX 分页获取数据,实现文字滚动轮播

    需求:有一个参与抽奖的参与者列表,需要上下滚动轮播参与者信息,每隔1分钟请求一次接口,如果请求到数据,则将数据添加...

  • 无标题文章

    轮播图分为:传统轮播图、间歇轮播图、呼吸轮播图、无缝滚动轮播图等。它们各具特色,各有用处。 1.传统轮播图 第一步...

  • 项目-轮播图

    整个轮播图分为三部分:轮播指标、轮播项目及轮播导航。用boostrap实现轮播图要比用js、jQuery方便的多,...

  • 轮播图

    轮播图分为:传统轮播图、间歇轮播图、呼吸轮播图、无缝滚动轮播图等。 1.传统轮播图 第一步,得到元素 第二步,设置...

  • 文末||抽奖,抽奖,抽奖

    关注公众号“14摄氏度” 转发朋友圈截图发送给后台获取抽奖密令 人工审核请耐心等待 10月8日开奖 因为14摄氏度...

  • jQuery传统轮播、三位置轮播、呼吸轮播

    一、传统轮播 二、三位置轮播 三、呼吸轮播

  • 抽奖》抽奖

    #作业要求: 1.登录成功后,用户选择幸运抽奖菜单,进入幸运抽奖功能 2.输入会员卡号,系统生成5个4位随机数作为...

  • 抽奖抽奖

    “我是小虹”第三届简书贝抽奖活动今天落幕了。 感谢以下简友参与和评论: 评论回复主要喜欢吃的美食,有: 饺子、草莓...

  • 轮播图的实现

    1、轮播图的协议 2、轮播视图:SMCarouselView 3、轮播视图的cell

网友评论

      本文标题:wheelSurf:轮播抽奖

      本文链接:https://www.haomeiwen.com/subject/sgiaeftx.html