JSFiddle - React, Tailwind, and code Playground

by 94jerdaw

HTML

<div class="container">
    <div id="a1" class="card"></div>
    <div id="a2" class="card"></div>
    <div id="a3" class="card"></div>
    <div id="a4" class="card"></div>
    <div id="b1" class="card"></div>
    <div id="b2" class="card"></div>
    <div id="b3" class="card"></div>
    <div id="b4" class="card"></div>
    <div id="c1" class="card"></div>
    <div id="c2" class="card"></div>
    <div id="c3" class="card"></div>
    <div id="c4" class="card"></div>
    <div id="d1" class="card"></div>
    <div id="d2" class="card"></div>
    <div id="d3" class="card"></div>
    <div id="d4" class="card"></div>
</div>

CSS

body{
    margin:0;
    padding:0;
}


.container{
    width:418px;
}

.card{
    width:100px;
    height:100px;
    float:left;
    background-color:#ccc;
    margin-bottom:3px;
	margin-right:3px;
	position: relative;
}

.card:after {
    content:"";
    display:block;
    position:absolute;
    left:0;
    right:0;
    top:0;
    bottom:0;
    background: lightgrey;
}

.card:hover:after {
	width:94px;
    height:94px;
	border:3px solid black;
	
}

.show.card:after{
	display:none;
	border: 0;	
}

.show:hover{
	width:94px;
    height:94px;
	border:3px solid black;

JavaScript

var colors = [
    "orange","orange","pink","pink","red","red","purple","purple",
    "blue","blue","green","green","brown","brown","yellow","yellow"];
		
	var divs = document.getElementsByClassName("card");
	
	while (divs.length > 0) {
		var i = Math.floor(Math.random() * colors.length);
		divs[0].style.backgroundColor = colors[i];
		colors.splice(i, 1);
		divs = [].slice.call(divs, 1);
	}
	
	
	var pick1 = false;
	var pick2 = false;
	var id1;
	var id2;
	
	$('.card').click(function(){
	
		if(pick1) {
			pick2 = $(this).css('background-color');
			id2 = $(this).attr('id');
			$(this).addClass("show")
			
			if(pick1 == pick2 && id1!=id2) alert('Correct');
				else {
					alert('Incorrect');
                    $('#' + id1 + ', #' + id2).removeClass("show");
				}
		
			pick1 = false;
			pick2 = false;
		} else {
			pick1 = $(this).css('background-color');
			id1 = $(this).attr('id'); 
			$(this).addClass("show")
		}
	});