JSFiddle - React, Tailwind, and code Playground

by orjan

HTML

<img id="lottobg" src="http://www.multiq.se/demo/lotto/img/bg.jpg">
        <div id="lottonums">
            <div id="draw-message">Next draw will be in <span id="counter">5</span> minutes</div>
            <ul>
                <li><span class="lottoball-txt" id="ball1"></span></li>    
                <li><span class="lottoball-txt" id="ball2"></span></li> 
                <li><span class="lottoball-txt" id="ball3"></span></li>    
                <li><span class="lottoball-txt" id="ball4"></span></li> 
                <li><span class="lottoball-txt" id="ball5"></span></li>    
                <li><span class="lottoball-txt" id="ball6"></span></li> 
                <li><span class="lottoball-txt" id="ball7"></span></li>    
                <li class="last"><span class="lottoball-txt" id="ballextra"></span></li> 
            </ul>
        </div>
        <div id="lottoanim">
    <img src="http://www.multiq.se/demo/lotto/img/lottoball01.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball02.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball03.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball04.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball01.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball02.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball03.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball04.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball01.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball02.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball03.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball04.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball01.png" alt="" />
    <img src="http://www.multiq.se/demo/lotto/img/lottoball02.png" alt="" />
    <img...

CSS

body {
    font-family: Helvetica, Arial, sans-serif;
    margin: 0;
    padding: 0;
    width: 1280px;
    height: 720px;
    overflow: hidden;
    background: #000;

}

#lottobg {
    width: 1280px;
    height: 720px;
    overflow: hidden;
    position:absolute;
    top: 0;
    left: 0;
    opacity: 1;
}

#lottoanim {
    width: 1280px;
    height: 720px;
    overflow: hidden;
    position:absolute;
    top: 0;
    left: 0;
    opacity: 1;
}

#lottoanim img {
    position: absolute;
    z-index: 2000;
    top:-200px;
    opacity: 1;
}

#container {
    margin: 0;
    padding: 0;
}

#lottonums {
   margin: 280px -10px 0 10px;
   padding: 0;
}

#lottonums ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

#lottonums li {
    display: block;
    float: left;
    margin: 0 5px;
    padding: 0;
    height: 150px;
    width: 150px;
    background-image: url('http://www.multiq.se/demo/lotto/img/lottoball.png');
    background-repeat: no-repeat;
    background-position: -10px -10px;
    text-align: center;
    opacity: 0;
}

#lottonums li.last {
    background-image: url('http://www.multiq.se/demo/lotto/img/lottoballextra.png');
    margin: 0;
}

.lottoball-txt {
    font-size: 50px;
    line-height: 120px;
    margin: 0 0 0 -20px;
    color: #fff;
}

#draw-message {
    position: absolute;
    top: 480px;
    left: 450px;
    font-size: 30px;
    color: #dd6b22;
    opacity: 0;
}

#counter {
    color: #333;
}

JavaScript

function setDraw() {
    var draw = new Array();
    var numbers = 8;
    var tmp;
    for (var i = 0; i < numbers; i++) //
    {
        while (true) {
            tmp = getRandomNumber(75);
            if (draw.indexOf(tmp) == -1) break;
        }
        draw[i] = tmp;
    }
    draw.sort(function(a, b) {
        return a - b
    });
    for (var i = 0; i < numbers; i++) //
    {
        $('#ball' + (i + 1)).html(draw[i]);
    }
    while (true) {
        tmp = getRandomNumber(75);
        if (draw.indexOf(tmp) == -1) {
            $('#ballextra').html(tmp);
            break;
        }
    }
}

function getRandomNumber(max) {
    return Math.floor((Math.random() * max) + 1);
}

jQuery.fx.interval = 1000 / 17;

var ballsEnabled = false;
var ballsActive = 0;

function restartBall() {
    ballsActive--;
    $(this).css({
        top: -250
    });
    if (ballsEnabled) initBall($(this), 0);
    else if (ballsActive == 0) {
        ballsStopped();
    }
}

function initBall(ball, initialDelay) {
    ballsActive++;
    ball.css({
        top: -250
    });
    ball.css({
        left: (Math.random() * 1280 - 200)
    });
    ball.delay(initialDelay).animate({
        top: 720
    }, 1500 + Math.random() * 3000, restartBall);
}

function startBalls() {
    ballsEnabled = true;
    $('#lottoanim img').show().each(function(index) {
        initBall($(this), index * 300);
    });
    setTimeout(stopBalls, 6000);
}

function stopBalls() {
    ballsEnabled = false;
}

function ballsStopped() {
    $('#lottoanim img').hide();
    $('#lottobg').animate({
        opacity: 1
    }, 1500, startShowDraw);
}

function startShowDraw() {
    $('#lottonums').show();
    $('#draw-message').animate({
        opacity: 1
    }, 300, showDraw);
}

function myStartAnimation() {
    $('#lottonums').hide();
    $('#lottobg').animate({
        opacity: 0
    }, 1500, startBalls);
}

function showDraw() {
    $('#lottonums li').each(function(i) {
        $(this).delay(i * 1000).animate({
   ...