打字游戏

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        html,body{
            height: 100%;
            overflow: hidden;
        }
        .main,.wordList{
            width: 100%;
            height: 100%;
            overflow: hidden;
        }
        .wordItem{
            width: 100px;
            height: 100px;
            text-align: center;
            line-height: 100px;
            border-radius: 50px;
            background:navajowhite;
            position: absolute;
            top: 20px;
            animation: wangxiadiao 10s linear forwards;
            
        }
        @keyframes wangxiadiao{
            from{
                /*transform: translate(0,0);*/
                top: 20px;
            }
            to{
                /*transform: translate(0,1500px);*/
                top: 1500px;
            }
        }
        
        .startgame{
            width: 300px;
            height: 150px;
            background: orangered;
            color: #fff;
            text-align: center;
            line-height: 150px;
            border-radius: 30px;
            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -150px;
            margin-top: -75px;
            font-size: 70px;
        }
        .gametime{
            position: absolute;
            left: 50px;
            top: 50px;
            display: none;
        }
        </style>
    </head>
    <body>
        <div class="main">
            <div class="wordList">
                
            </div>
            
            <div class="menu">
                <button class="startgame">游戏开始</button>
                <h1 class="gametime">游戏结束剩余时间: <span class="time">20</span></h1>
                <h1>当前得分:<span class="scroe">0</span></h1>
                
            </div>
            
        </div>
        
        
        <script type="text/javascript">
            //间隔一定时间生成随机的字母
            
            
            
            var game = {
                gData:{
                    word:['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'],
                    wordList:document.querySelector('.wordList'),
                    newList:[],
                    domList:[],
                    score:0
                },
                startGame:function(){
                    //开始前,程序需要执行的内容
                    var btn = document.querySelector('.startgame')
                    btn.onclick = function(){
                        btn.style.display = 'none'
                        game.gameing()
                    }
                    
                    
                    
                },
                gameing:function(){
                    //游戏中要执行的程序
                    document.querySelector('.gametime').style.display = 'block'
                    var fn = function(){
                        var randomNum = parseInt(Math.random()*26) 
                        var newDiv = document.createElement('div')
                        newDiv.innerHTML = game.gData.word[randomNum]
                        newDiv.className = 'wordItem'
                        
                        game.gData.newList.push(game.gData.word[randomNum])
                        game.gData.domList.push(newDiv)
                        
                        var x = Math.random()*(document.body.clientWidth-100)
                        newDiv.style.left = x + 'px'
                        
                        game.gData.wordList.appendChild(newDiv)
                        
                        var newWord = game.gData.word[randomNum]
                        
                        setTimeout(function(){
                            var index = game.gData.newList.indexOf(newWord)
                            if(index!=-1){
                                game.gData.wordList.removeChild(game.gData.domList[index])
                                game.gData.newList.splice(index,1)
                                game.gData.domList.splice(index,1)
                                
                            }
                            
                        },1000)
                        
                        //绑定按键事件
                        var html = document.querySelector('html')
                        html.onkeypress = function(e){
                            //e.key
                            console.log(e.key)
                            var index = game.gData.newList.indexOf(e.key)
                            if(index == -1){
                                console.log('输入错误')
                            }else{
                                //删除数组里面的某一项内容
                                game.gData.wordList.removeChild(game.gData.domList[index])
                                game.gData.newList.splice(index,1)
                                game.gData.domList.splice(index,1)
                                game.gData.score++
                                
                                document.querySelector('.scroe').innerHTML = game.gData.score
                                console.log(game.gData.newList)
                                console.log(game.gData.domList)
                                
                            }
                        }
                        
                    }
                
                    //清除间隔函数
                    var interId = setInterval(fn,2000)
                    var currentTime = 20
                    var timeId = setInterval(function(){
                        currentTime--;
                        document.querySelector('.time').innerHTML = currentTime
                    },1000)
                    
                    setTimeout(function(){
                        clearInterval(interId)
                        clearInterval(timeId)
                        game.endGame()
                    },20000)
                    
        
                
                    
                },
                //游戏结束的时候执行的函数
                endGame:function(){
                    alert('游戏结束,你的得分是:'+game.gData.score)
                }
            }
            
            
            
            game.startGame()
        </script>
    </body>
</html>
原文地址:https://www.cnblogs.com/wwthuanyu/p/10555237.html