JSFiddle - React, Tailwind, and code Playground

by smilburn

HTML

<head>      
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  <script type="text/javascript" src="http://code.jquery.com/ui/1.8.21/jquery-ui.min.js"></script>  
</head>

<body> 
  <div class="maincontain">
  <div class="container">
  <img src="http://designbeep.designbeep.netdna-cdn.com/wp-content/uploads/2010/11/1.collection-of-character-mascot-illustrator-tutorial.jpg">
  
     <ul style="display:none;" id="wordlist">
     
        <li data-word="mum" data-audio="http://192.20.225.36/tts/speech/145ac9a57dc787141a7982ce63a5d13c.wav" data-pic="http://www.clker.com/cliparts/5/e/7/f/1195445022768793934Gerald_G_Lady_Face_Cartoon_1.svg.med.png"></li>
         
        <li data-word="cat" data-audio="http://www.wavsource.com/snds_2012-08-05_4029893748649806/animals/cat_meow_x.wav" data-pic="http://www.clker.com/cliparts/c/9/9/5/119543969236915703Gerald_G_Cartoon_Cat_Face.svg.med.png"></li>
      
        <li data-word="dog" data-audio="http://simplythebest.net/sounds/WAV/sound_effects_WAV/sound_effect_WAV_files/dog_1.wav" data-pic="http://www.clker.com/cliparts/a/2/c/0/1195440948271207911zeimusu_spotty_dog.svg.med.png"></li>
      
        <li data-word="bug" data-audio="http://192.20.225.36/tts/speech/3d38c2c19a18f938650a56fdb6409fdd.wav" data-pic="http://www.clker.com/cliparts/4/b/4/2/1216180545881311858laurent_scarabe.svg.med.png"></li>
      
       <li data-word="rat" data-audio="http://192.20.225.36/tts/speech/289f0314d31aca30fea17aa11316cc48.wav" data-pic="http://www.clker.com/cliparts/C/j/X/e/k/D/mouse-md.png"></li>
         
        <li data-word="dad" data-audio="http://www.wav-sounds.com/cartoon/porkypig1.wav" data-pic="http://www.clker.com/cliparts/3/a/6/6/119544474191128182Gerald_G_Man_Face_6_-_World_Label.svg.med.png"></li>
        

        
        
      </ul>
  <div class="squares">
      
            <div id="drag1" class="drag ui-widget-content box-style2" tabindex="0"...

CSS

.drag {

    display:block;
    height:61px;
    line-height:25px;
    width:61px;
    text-align: center;
    background:#ddd;    
    float:left;  
    -webkit-transition: -webkit-transform 0.1s ease-in;

 
}

.drag :hover {

    -moz-transform: scale(1.1);
    -webkit-transform: scale(1.1);
    transform: scale(1.1);     
}

table {
    clear:both;
    line-height:25px;
     text-align:center;    

}

.drop {
   
    height:61.5px;
    width:61.5px;
    cursor: move;
    -moz-transition: all 1s ease-out;
    -webkit-transition: all 1s ease-out;
    opacity: 1;
}
.maincontain {
    
    width: 868px;
    border: solid 8pt lightgreen;
    -webkit-box-shadow: 4px 4px 4px green;
    -moz-box-shadow: 4px 4px 4px green;
    box-shadow: 4px 4px 4px green;  
    background: #cc66ff;       
}

.container {
       
    height: 373px;
    position: relative;
    width: 1000px;       
}

.container > img {
        
    height: 373px;
    position: absolute;
    width: 373px;
    cursor: move;
                  
}

table {
    margin: 0;
    padding: 0;
    line-height: 56px;
               
}
 
article, aside, figure, footer, header, hgroup,
menu, nav, section {
    
    display: block;    
}
  
table td {
    
    border: 1px solid white;
    border-style: dashed;
    position: relative;
    vertical-align: top;
    cursor: move;
    min-height:60px;
    max-width:60.3px;
    min-width:60.3px;
    max-height:60px;
    background: #cc66ff;
    float: left;         
}
    
table td div {
         
    position: absolute;
    width: 59.5px;
    height: 59.5px;
    cursor: move;
    opacity: 1;
}

.tablestyle{
  
    position: absolute;
    color: transparent;
    font-family: arial;
    font-size: 35pt;
    text-align: center; 
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

      
}


.spellword {
 
    -webkit-box-shadow: inset 0px 0px 10px 5px...

JavaScript

var listOfWords = [];
var rndWord = [];
var counter = 0;
var ul = document.getElementById("wordlist");
var i;

for (i = 0; i < ul.children.length; ++i) {

    listOfWords.push({
        "name": ul.children[i].getAttribute("data-word"),
        "pic": ul.children[i].getAttribute("data-pic"),
        "audio": ul.children[i].getAttribute("data-audio")
    });
}

var chosenWords = [];
var copylist = listOfWords.slice();

for (var x = 0; x < 6; x++) {
    var rand = Math.floor(Math.random() * (copylist.length));
    chosenWords.push(copylist[rand].name);
    copylist.splice(rand, 1);
    if (chosenWords.length < 12) {
        chosenWords.push('   ');
    }

}

var shuffledWords = [];
shuffledWords = chosenWords.sort(function() {
    return 0.5 - Math.random()
});

var guesses = {};
var tbl = document.createElement('table');
tbl.className = 'tablestyle';
var wordsPerRow = 2;

for (var i = 0; i < shuffledWords.length - 1; i += wordsPerRow) {

    var row = document.createElement('tr');
    for (var j = i; j < i + wordsPerRow; ++j) {
        var word = shuffledWords[j];
        guesses[word] = [];

        for (var k = 0; k < word.length; ++k) {
            var cell = document.createElement('td');


            $(cell).addClass('drop-box').attr('data-word', word).attr('data-letter', word[k]);
            cell.textContent = word[k];

            row.appendChild(cell);
        }
    }
    tbl.appendChild(row);
}

$(".container").append(tbl);



var right = $(".right");
var wrong = $(".wrong");
var audioS = $("#successSound")[0];
var audioF = $("#failSound")[0];
$('.drag').on('click', function(e) {
    e.preventDefault();

    var target = $('.drop-box.spellword:not(.occupied):first');
    var targetPos = target.position();
    var currentPos = $(this).offset();
    var b = $(this);


    if (target.length) {
        $(".minibutton").prop("disabled", true);
        b.clone().addClass(
        b.data("letter") == target.data("letter") ? "wordglow3" :...