Fun little interactive planets quiz
A Pen by Jamie Coulter on CodePen.
.overlay | |
.timer 0 seconds | |
.intro.modal | |
.intro.modal_inner | |
.intro.modal_inner__close.c_modal.st | |
x | |
.intro.modal_inner__title | |
%h2 Planet quiz | |
.intro.modal_inner__text | |
%p Drag the planets in the correct order as fast as you can! | |
.intro.modal_inner__image | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/sdfsdfsdf.gif'} | |
.intro.modal_inner__cta.c_modal | |
%button.st Lets go! | |
.winner.modal | |
.winner.modal_inner | |
.winner.modal_inner__title | |
%h2 | |
Well done, you won in | |
%span.t 10.00 | |
.winner.modal_inner__text | |
%p You are a proper clever cloggs! Why not share this with a friend and see if they are as smart as you! | |
.winner.modal_inner__cta | |
%button.cp | |
%a{:href => 'https://www.codepen.io/jcoulterdesign',:target => '_blank'} Follow me on Codepen | |
%button.tw | |
Tweet | |
.winner.modal_inner__restart | |
-# %button.ta Try again | |
.planets | |
.planets_stars | |
.planets_container | |
.planets_container__title | |
%h1 Planets quiz | |
.planets_container__title | |
%h3 Drag the planets into the correct order | |
.planets_container__planets | |
.planet_wrap | |
.planet{'data-planet' => 'venus'} | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_venus.png'} | |
%span Venus | |
.planet_wrap | |
.planet{'data-planet' => 'earth'} | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_earth.png'} | |
%span Earth | |
.planet_wrap | |
.planet{'data-planet' => 'saturn'} | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_saturn.png'} | |
%span Saturn | |
.planet_wrap | |
.planet{'data-planet' => 'neptune'} | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_neptune.png'} | |
%span Neptune | |
.planet_wrap | |
.planet{'data-planet' => 'mercury'} | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_mercury.png'} | |
%span Mercury | |
.planet_wrap | |
.planet{'data-planet' => 'mars'} | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_mars.png'} | |
%span Mars | |
.planet_wrap | |
.planet{'data-planet' => 'jupiter'} | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_jupiter.png'} | |
%span Jupiter | |
.planet_wrap | |
.planet{'data-planet' => 'uranus'} | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_uranus.png'} | |
%span Uranus | |
.planets_container__quiz | |
.planet_holder.sun.null{'data-planet' => 'sun'} | |
%span ? | |
.planet_answer | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_sun.png'} | |
.planet_holder.mercury{'data-planet' => 'mercury'} | |
%span ? | |
.planet_answer | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_mercury.png'} | |
.planet_holder.venus{'data-planet' => 'venus'} | |
%span ? | |
.planet_answer | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_venus.png'} | |
.planet_holder.earth{'data-planet' => 'earth'} | |
%span ? | |
.planet_answer | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_earth.png'} | |
.planet_holder.mars{'data-planet' => 'mars'} | |
%span ? | |
.planet_answer | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_mars.png'} | |
.planet_holder.jupiter{'data-planet' => 'jupiter'} | |
%span ? | |
.planet_answer | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_jupiter.png'} | |
.planet_holder.saturn{'data-planet' => 'saturn'} | |
%span ? | |
.planet_answer | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_saturn.png'} | |
.planet_holder.uranus{'data-planet' => 'uranus'} | |
%span ? | |
.planet_answer | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_uranus.png'} | |
.planet_holder.neptune{'data-planet' => 'neptune'} | |
%span ? | |
.planet_answer | |
%img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/pq_neptune.png'} |
Fun little interactive planets quiz
A Pen by Jamie Coulter on CodePen.
// Init draggable | |
var planet = '.planet'; // Planet element | |
var holder = '.planet_holder'; // Holder element | |
var planets = 8; | |
var correct = 0; | |
$(planet).draggable({ | |
revert:true | |
}) | |
// Init droppable | |
$(holder).droppable({ | |
hoverClass: "ui-state-hover", | |
drop:function(event, ui){ | |
var dropped = $(this).data('planet') | |
if($(ui.draggable).data('planet') == dropped){ | |
setTimeout(function(){ | |
$(ui.draggable).append('<div class="tick"><i class="icon ion-checkmark-round"></i></div>') | |
},500) | |
$(ui.draggable).find('img').css('opacity','.12') | |
$(this).find('.planet_answer img').addClass('scale'); | |
$(this).find('.planet_answer').parent().css('border','none'); | |
$(ui.draggable).next().addClass('answered') | |
correct ++; | |
} else { | |
} | |
if(correct == planets){ | |
show_modal('winner') | |
clearTimeout(timer) | |
$('.t').html(time) | |
} | |
} | |
}) | |
var timer = 0; | |
function show_modal(modal){ | |
$('.' + modal).show(); | |
$('.overlay').show(); | |
} | |
function hide_modal(modal){ | |
$('.' + modal).hide(); | |
$('.overlay').hide(); | |
} | |
function start_timer(){ | |
var start = new Date; | |
timer = setInterval(function() { | |
time = Math.floor((new Date - start) / 1000) + " seconds"; | |
$('.timer').html(time) | |
console.log(time) | |
}, 1000); | |
} | |
// Show intro modal | |
$('.st').click(function(){ | |
start_timer() | |
}) | |
$(document).ready(function(){ | |
show_modal('intro'); | |
}) | |
$('.c_modal').click(function(){ | |
hide_modal('modal') | |
}) | |
$('.ta').click(function(){ | |
hide_modal('modal'); | |
start_timer(); | |
correct = 0; | |
$(planet).css('opacity','1') | |
$('.planet_answer').hide() | |
$('.answered').removeClass('answered') | |
$('.planet_holder').css('border','2px dashed rgba(255, 255, 255, 0.22)') | |
}) | |
function twShare(url, title, winWidth, winHeight) { | |
var winTop = 100; | |
var winLeft = 100; | |
window.open('https://twitter.com/intent/tweet?text='+title, 'sharer', 'top=' + winTop + ',left=' + winLeft + ',toolbar=0,status=0,width=' + winWidth + ',height=' + winHeight); | |
} | |
$('body').on('click','.tw',function(){ | |
twShare('http://codepen.io/jcoulterdesign/pen/fe65b4a77c18330f405702ce4205824e', 'I just completed the Planet Quiz on @codepen in ' + time + ', can you beat it? http://bit.ly/20zZ7wq %23codepen %23planetQuiz', 520, 350); | |
}); | |
// To do before release | |
// Animate in the modals | |
// Cross browser |
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> | |
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script> |
*{ | |
box-sizing:border-box; | |
} | |
.cp{ | |
background:#3C3F44 !important; | |
border:none !important; | |
a{ | |
text-decoration:none; | |
color:white; | |
} | |
} | |
.tw{ | |
background:#34B1EC !important; | |
border:none !important; | |
color:white !important; | |
a{ | |
text-decoration:none; | |
color:white; | |
} | |
} | |
.fb{ | |
background:#4057AB !important; | |
border:none !important; | |
a{ | |
text-decoration:none; | |
color:white; | |
} | |
} | |
@import url(https://fonts.googleapis.com/css?family=Nunito:400,300,700); | |
.null{ | |
border:none !important; | |
.planets_container__quiz .planet_answer:nth-of-type(1) { | |
display:block !important | |
} | |
.planet_answer img{ | |
transform:scale(1) !important; | |
} | |
} | |
body{ | |
margin:0; | |
font-family:'nunito'; | |
padding:0; | |
height:100vh; | |
.tick{ | |
color: #76E693; | |
position: absolute; | |
top: 8px; | |
left: 0; | |
transform:scale(0); | |
right: 0; | |
animation:tick .3s forwards; | |
font-size: 20px; | |
} | |
.timer{ | |
color:white; | |
position:absolute; | |
top:20px; | |
font-weight:400; | |
font-size:13px; | |
right:20px; | |
z-index:10; | |
} | |
.overlay{ | |
display:none; | |
width:100%; | |
opacity:0.9; | |
position:fixed; | |
height:100%; | |
z-index:1; | |
background:#1D1F29; | |
} | |
.winner{ | |
display:none; | |
} | |
.intro{ | |
display:none; | |
} | |
.modal{ | |
z-index:2; | |
width:400px; | |
background:white; | |
left:0; | |
border-radius:12px; | |
right:0; | |
position:absolute; | |
top:50%; | |
transform:translateY(-50%); | |
margin:auto; | |
&_inner{ | |
padding:30px; | |
text-align:center; | |
img{ | |
width:100%; | |
} | |
button{ | |
border: 2px solid #E14122; | |
background: none; | |
color: #E14122; | |
font-weight: 700; | |
font-family: 'nunito'; | |
padding: 10px 13px; | |
outline:none; | |
cursor: pointer; | |
margin-top: 20px; | |
border-radius:4px; | |
transition:all .2s; | |
&:hover{ | |
background:#E14122; | |
color:white; | |
} | |
} | |
h2{ | |
margin:0; | |
color: #E14122; | |
} | |
p{ | |
color: #5C5E67; | |
font-weight: 100; | |
font-size: 14px; | |
} | |
&__close{ | |
position:absolute; | |
right:-20px; | |
top:-20px; | |
color:white; | |
cursor:pointer; | |
opacity:0.6; | |
transition:all .3s; | |
&:hover{ | |
opacity:1; | |
} | |
} | |
} | |
} | |
.ui-state-hover{ | |
border: 2px dashed #11DFF3 !important; | |
box-shadow: 0px 0px 20px 0px rgba(52, 205, 224, 0.11); | |
transform:scale(1.2) !important; | |
span{ | |
color: #11DFF3 !important | |
} | |
} | |
.planets{ | |
overflow:hidden; | |
background: linear-gradient(90deg, #262D48 0%, #0A0B0E 100%); | |
width:100%; | |
height:100vh; | |
position:relative; | |
&_stars{ | |
img{ | |
width:100%; | |
} | |
background-size: 400px; | |
background-repeat: repeat; | |
position:absolute; | |
width:100%; | |
height:100%; | |
background-image:url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/stars-back.png'); | |
} | |
&_container{ | |
width:1000px; | |
text-align:center; | |
height:520px; | |
position:absolute; | |
left:0; | |
right:0; | |
margin:auto; | |
top:50%; | |
transform:translateY(-50%); | |
&__title{ | |
h1{ | |
margin:0; | |
color:white; | |
} | |
h3{ | |
margin:0; | |
color: #E14122; | |
font-weight: 400; | |
} | |
} | |
&__planets{ | |
margin:90px; | |
.answered{ | |
opacity:0.3; | |
} | |
span{ | |
color:#ef4423; | |
font-size:13px; | |
display:block; | |
margin-top:7px; | |
} | |
.planet_wrap{ | |
display:inline-block; | |
width: 75px; | |
} | |
.info{ | |
background:white; | |
width:100px; | |
height:100px; | |
display:none; | |
} | |
.planet{ | |
//background:Red; | |
border-radius:100px; | |
cursor:pointer; | |
img{ | |
height:38px; | |
position: relative; | |
z-index: 11; | |
border-radius:100px; | |
&:hover{ | |
//box-shadow:0px 0px 0px 2px white; // Damn you jupiter! | |
} | |
} | |
} | |
} | |
&__quiz{ | |
.planet_holder{ | |
width:40px; | |
transition:all .3s; | |
height:40px; | |
border-radius:100px; | |
display:inline-block; | |
border:2px dashed rgba(255, 255, 255, 0.22); | |
margin-right:30px; | |
span{ | |
position:absolute; | |
left:0; | |
right:0; | |
color:white; | |
top:50%; | |
transition:all .3s; | |
transform:translateY(-50%) | |
} | |
} | |
// Planet specific | |
.sun{ | |
width:160px; | |
height:156px; | |
position:relative; | |
top:30px; | |
animation:space_wobble 5.8s .1s linear infinite; | |
span{ | |
font-size:50px; | |
} | |
} | |
.mercury{ | |
width:30px; | |
height:30px; | |
position:relative; | |
top:-60px; | |
animation:space_wobble 5.7s .4s linear infinite; | |
span{ | |
font-size:10px; | |
} | |
} | |
.venus{ | |
width:40px; | |
height:40px; | |
position:relative; | |
top:-20px; | |
animation:space_wobble 5.3s .8s linear infinite; | |
span{ | |
font-size:12px; | |
} | |
} | |
.earth{ | |
width:50px; | |
height:50px; | |
position:relative; | |
top:-30px; | |
animation:space_wobble 5.2s 1s linear infinite; | |
span{ | |
font-size:20px; | |
} | |
} | |
.mars{ | |
width:46px; | |
height:46px; | |
position:relative; | |
animation:space_wobble 5s .1s linear infinite; | |
span{ | |
font-size:18px; | |
} | |
} | |
.jupiter{ | |
width:90px; | |
height:90px; | |
position:relative; | |
top:-10px; | |
animation:space_wobble 4.7s .6s linear infinite; | |
span{ | |
font-size:30px; | |
} | |
} | |
.saturn{ | |
width:80px; | |
height:80px; | |
position:relative; | |
top:20px; | |
animation:space_wobble 5.9s .1s linear infinite; | |
span{ | |
font-size:26px; | |
} | |
} | |
.uranus{ | |
width:50px; | |
height:50px; | |
position:relative; | |
top:-30px; | |
animation:space_wobble 6s .7s linear infinite; | |
span{ | |
font-size:20px; | |
} | |
} | |
.neptune{ | |
width:47px; | |
height:47px; | |
position:relative; | |
top:-10px; | |
animation:space_wobble 5s .4s linear infinite; | |
} | |
.scale{ | |
transform:scale(1) !important | |
} | |
.planet_answer{ | |
border-radius:100px; | |
img{ | |
width:100%; | |
transform:scale(0); | |
transition:all .3s; | |
} | |
} | |
} | |
} | |
} | |
} | |
// Anims | |
@keyframes space_wobble{ | |
0%{transform:translateY(0px)} | |
25%{transform:translateY(3px)} | |
50%{transform:translateY(0px)} | |
75%{transform:translateY(-3px)} | |
100%{transform:translateY(0px)} | |
} | |
@keyframes tick{ | |
0%{transform:scale(0)} | |
100%{transform:scale(1)} | |
} |
<link href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css" rel="stylesheet" /> |