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({
...