LOADING...

Preview

Pen ID
Unlock Campus Themeforest adv

 

Code



CSS
body, html{margin:0;font:normal 0/0 Arial, Helvetica, sans-serif;background:#333;overflow:hidden;color:#fff;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
body, html, .flipper, .f, .b, #g {width:100%;height:100%;}

/* font-face */
@font-face{font-family: "GeneralFoundicons";font-weight:normal;font-style:normal;
	src: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/60583/general_foundicons.eot");
	src: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/60583/general_foundicons.eot?#iefix") format("embedded-opentype"),
	     url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/60583/general_foundicons.woff") format("woff"),
	     url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/60583/general_foundicons.ttf") format("truetype"),
	     url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/60583/general_foundicons.svg#GeneralFoundicons") format("svg");
}
a{text-decoration:none;color:#fff;display:block;font:bold 18px/75px 'Open Sans';text-transform:uppercase;text-align:center;padding:0;margin:0 1px;}
a:hover{color:#fff;background:rgba(255, 255, 255, .1)}

/* FRONT SCREEN */
.logo{width:450px;height:450px;position:absolute;top:50%;left:50%;margin:-225px 0 0 -225px}
.logo .card{width:50%;height:50%;cursor:default;position:relative}
.logo .card.left.active{z-index:2}
.logo .card.left.active + .card{opacity:0}
.logo .card.left.active .b{margin-left:-100%}
.logo .f{font:normal 130px/225px 'Open Sans';text-align:center;text-transform:uppercase;}
.logo .c2{transform:scale(-1, 1);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1)}

.logo .contentbox{width:200%;font:normal 12px/16px 'Open Sans';text-align:left}
.logo .contentbox.levels{width:100%}
.logo .contentbox .padded{padding:0 15px;}
.logo .contentbox h2{font-size:24px;padding:0;margin:28px 0;text-transform:uppercase}
.logo .contentbox p{line-height:14px;margin:14px 0}

#stats h2 i{margin-right:10px;vertical-align:top;font:italic normal 9px/8px 'Open Sans';color:rgba(255,255,255, .4)}
#stats ul{width:50%;display:inline-block;margin:0;padding:0;list-style-type:none;vertical-align:top;line-height:22px}
#stats li{display:block;margin:0;padding:0;}
#stats li b{display:inline-block;font-size:12px;width:95px}
#stats a {position:absolute;bottom:0;width:100%;margin-left:-15px;}

.logo .info{font-size:11px;line-height:16px;text-align:center;color: rgba(255,255,255, .3);padding:0 25px;}

/*GAME SCREEN*/
#g{margin-top:4px}
#g .timer{width:0%;height:5px;position:absolute;top:0;background:#C0392B;z-index:1}
@-webkit-keyframes timer {100% { width:100%; }}
@-moz-keyframes timer {100% { width:100%; }}
@-o-keyframes timer {100% { width:100%; }}
@keyframes timer {100% { width:100%; }}
.pause{position:absolute;width:100%;height:100%;left:0;top:0;z-index:100;background:rgba(51, 51, 51, 0.78)}
.pause::before{content:'PAUSED';width:100%;position:absolute;margin-top:-100px;top:50%;background:#C0392B;color:#fff;font:bold 80px/200px 'Open Sans';
display:block;text-align:center;}
/* card styles */
#g .found{display:inline-block}
.card{display:inline-block;-webkit-perspective:1000;-moz-perspective:1000;}
.card:not(.active):hover{opacity:.8}
.card .b::before{content:attr(data-f);display:block;font:normal 100px/100px "GeneralFoundicons";
position:absolute;top:50%;margin-top:-50px;width:100%;text-align:center}

/* flip cards */
.flipper {position:relative;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d}
.f, .b {position:absolute;top:0;left:0;box-shadow:inset 0 0 0 1px #333;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden}
.f {background:#16A085;z-index:1}
.b {background:#C0392B;opacity:0}
.card.active .b{z-index:2;opacity:1}

/*Grouped for easy prefixing*/
.card, .flipper, .logo .b{transition:400ms;-ms-transition:400ms;-webkit-transition:400ms;-moz-transition:400ms;-o-transition:400ms}
.card.active .flipper, .b {transform:rotateY(180deg);-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg)}
.logo .f, .card .b::before, .pause::before{-webkit-text-stroke: 1px #fff} /*webkit only*/

/*Responsive Stuff*/
@media all and (max-width: 1680px) and (min-width: 640px){
	.card .b::before{font-size:90px}
	#g.medium .card .b::before{font-size:70px}
	#g.hard .card .b::before{font-size:50px}
}
@media all and (max-width: 640px) and (min-width: 470px){
	.card .b::before{font-size:90px}
	#g.medium .card .b::before{font-size:60px}
	#g.hard .card .b::before{font-size:50px}
}

@media all and (max-width: 470px) and (min-width: 0px){
	.card .b::before{font-size:60px}
	#g.medium .card .b::before{font-size:35px;-webkit-text-stroke:0;}
	#g.hard .card .b::before{font-size:32px;-webkit-text-stroke:0;}
}

@media all and (max-width: 640px) and (min-width: 0px){
	a{line-height:50px;font-size:13px}
	.logo{width:300px;height:300px;margin:-150px 0 0 -150px}
	.logo .f{font:normal 80px/150px 'Open Sans'}
	.logo .contentbox h2{font-size:16px;margin:24px 0;}
	.logo .instructions h2{display:none}
	.logo .instructions.contentbox p:nth-child(3){display:none}
	#stats li b{width:auto}
}
JS
$(function(){
  
  function set(key, value) { localStorage.setItem(key, value); }
  function get(key)        { return localStorage.getItem(key); }
  function increase(el)    { set(el, parseInt( get(el) ) + 1); }
  function decrease(el)    { set(el, parseInt( get(el) ) - 1); }

  var toTime = function(nr){
    if(nr == '-:-') return nr;
    else { var n = ' '+nr/1000+' '; return n.substr(0, n.length-1)+'s'; }
  };

  function updateStats(){
    $('#stats').html('

Figures: '+ ''+get('flip_won')+'Won'+ ''+get('flip_lost')+'Lost'+ ''+get('flip_abandoned')+'Abandoned

'+ '
  • Best Casual: '+toTime( get('flip_casual') )+'
  • '+ '
  • Best Medium: '+toTime( get('flip_medium') )+'
  • '+ '
  • Best Hard: '+toTime( get('flip_hard') )+'
'+ '
  • Total Flips: '+parseInt( ( parseInt(get('flip_matched')) + parseInt(get('flip_wrong')) ) * 2)+'
  • '+ '
  • Matched Flips: '+get('flip_matched')+'
  • '+ '
  • Wrong Flips: '+get('flip_wrong')+'
'); }; function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex; while (0 !== currentIndex) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; }; function startScreen(text){ $('#g').removeAttr('class').empty(); $('.logo').fadeIn(250); $('.c1').text(text.substring(0, 1)); $('.c2').text(text.substring(1, 2)); $('.c3').text(text.substring(2, 3)); $('.c4').text(text.substring(3, 4)); // If won game if(text == 'nice'){ increase('flip_won'); decrease('flip_abandoned'); } // If lost game else if(text == 'fail'){ increase('flip_lost'); decrease('flip_abandoned'); } // Update stats updateStats(); }; /* LOAD GAME ACTIONS */ // Init localStorage if( !get('flip_won') && !get('flip_lost') && !get('flip_abandoned') ){ //Overall Game stats set('flip_won', 0); set('flip_lost', 0); set('flip_abandoned', 0); //Best times set('flip_casual', '-:-'); set('flip_medium', '-:-'); set('flip_hard', '-:-'); //Cards stats set('flip_matched', 0); set('flip_wrong', 0); } // Fill stats if( get('flip_won') > 0 || get('flip_lost') > 0 || get('flip_abandoned') > 0) {updateStats();} // Toggle start screen cards $('.logo .card:not(".twist")').on('click', function(e){ $(this).toggleClass('active').siblings().not('.twist').removeClass('active'); if( $(e.target).is('.playnow') ) { $('.logo .card').last().addClass('active'); } }); // Start game $('.play').on('click', function(){ increase('flip_abandoned'); $('.info').fadeOut(); var difficulty = '', timer = 1000, level = $(this).data('level'); // Set game timer and difficulty if (level == 8) { difficulty = 'casual'; timer *= level * 4; } else if(level == 18) { difficulty = 'medium'; timer *= level * 5; } else if(level == 32) { difficulty = 'hard'; timer *= level * 6; } $('#g').addClass(difficulty); $('.logo').fadeOut(250, function(){ var startGame = $.now(), obj = []; // Create and add shuffled cards to game for(i = 0; i < level; i++) { obj.push(i); } var shu = shuffle( $.merge(obj, obj) ), cardSize = 100/Math.sqrt(shu.length); for(i = 0; i < shu.length; i++){ var code = shu[i]; if(code < 10) code = "0" + code; if(code == 30) code = 10; if(code == 31) code = 21; $('
'+ '
'+ '
').appendTo('#g'); } // Set card actions $('#g .card').on({ 'mousedown' : function(){ if($('#g').attr('data-paused') == 1) {return;} var data = $(this).addClass('active').find('.b').attr('data-f'); if( $('#g').find('.card.active').length > 1){ setTimeout(function(){ var thisCard = $('#g .active .b[data-f='+data+']'); if( thisCard.length > 1 ) { thisCard.parents('.card').toggleClass('active card found').empty(); //yey increase('flip_matched'); // Win game if( !$('#g .card').length ){ var time = $.now() - startGame; if( get('flip_'+difficulty) == '-:-' || get('flip_'+difficulty) > time ){ set('flip_'+difficulty, time); // increase best score } startScreen('nice'); } } else { $('#g .card.active').removeClass('active'); // fail increase('flip_wrong'); } }, 401); } } }); // Add timer bar $('') .prependTo('#g') .css({ 'animation' : 'timer '+timer+'ms linear' }) .one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(e) { startScreen('fail'); // fail game }); // Set keyboard (p)ause and [esc] actions $(window).off().on('keyup', function(e){ // Pause game. (p) if(e.keyCode == 80){ if( $('#g').attr('data-paused') == 1 ) { //was paused, now resume $('#g').attr('data-paused', '0'); $('.timer').css('animation-play-state', 'running'); $('.pause').remove(); } else { $('#g').attr('data-paused', '1'); $('.timer').css('animation-play-state', 'paused'); $('
').appendTo('body'); } } // Abandon game. (ESC) if(e.keyCode == 27){ startScreen('flip'); // If game was paused if( $('#g').attr('data-paused') == 1 ){ $('#g').attr('data-paused', '0'); $('.pause').remove(); } $(window).off(); } }); }); }); });
Host Instantly Drag and Drop Website Builder

 

Description

Super old project I remembered about. Just thought I'd share it with you awesome CodePen people. Have some fun :)
Term
Mon, 11/27/2017 - 21:37

Related Codes

Pen ID
Pen ID
Pen ID