如何在网站中创建一个空格键计数器?

217 阅读2分钟

这些天来,很多人都在寻找在线空格键计数器。也有几个关于这个的网站。但如果你想做自己的空格键计数器网站,你可以使用这个脚本。

你会得到很多代码,只是显示空格键被按下了多少次。但这个脚本也有一个定时器选项。这将显示用户在特定时间内按下空格键的次数。

什么是空格键计数器?

我们中的许多人可能不知道什么是空格键计数器。空格键计数器是一个统计用户在特定时间内点击空格键次数的脚本。

游戏者可以使用这个工具来提高他们的游戏技能。你也可以制作一个类似于带计时器的空格键游戏,并与你的朋友分享它。

因此,首先要检查空格键计数器脚本。如果你想学习,我将在本帖后面描述每一行。否则,你可以复制该脚本并在你自己的网站上使用它。


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Spacebar Clicker demo - codehasbug.com</title>
		<style>
			html,body {
				height: 100%;
			}
			.wrapper{
				display: flex;
				flex-wrap: wrap;
				flex-flow: column;
				justify-content: center;
				text-align: center;
				height: 100%;
			}
			.title{
				font-size: 40px;
			}
			
			.counter-wrapper{
				font-size: 2em;
				font-weight: bold;
				color: #000;
			}
			.counter{
				font-size: 5em;
				color: #e28d73;
				text-shadow: rgb(0 0 0) 1px 0px 2px, rgb(0 0 0) 0px 2px 0px, rgb(0 0 0) 1px 0px 0px, rgb(0 0 0) 0px -1px 1px;
			}
			
			.timer{
				font-size: 30px;
				font-weight: bold;
				color: #737373;
			}
			.reset{
				margin: 20px 0;
			}
			
			.reset #restart{
				width: 220px;
				background-color: #07004c;
				color: #fff;
				padding: 8px 10px;
			}
			
		</style>
    </head>
    <body>
		<div class="wrapper">
			<h1 class="title">Spacebar Clicker</h1>
			<div class="counter-wrapper">You have hit spacebar <span class="counter">0</span> times.</div>
			<div class="timer">Timer : <span id="count">0</span> sec</div>
			<div class="option">
				<input type="number" id="duration">
				<button id="setTime">Set Timer</button>
			</div>
			<div class="reset">
				<button id="restart">Reset</button>
			</div>
		</div>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
		<script>
			$(document).ready(function(){
				let timer = 0;
				let hits = 0;
				let interval = null;
				let started = false;
				let completed = false;
				
				$('body').keyup(function(event){
					if( event.keyCode === 32 ){
						
						if(!completed){
							if( timer > 0){
								
								if( started === false ){
									started = true;
									
									interval = setInterval(function(){
										timer--;
										$("#count").text( timer);
										if(timer === 0){
											completed = true;
											clearInterval(interval);
											
											$("#duration").attr("disabled", false);
											$("#setTime").attr("disabled", false);
										}
									}, 1000);
									
									$("#duration").attr("disabled", true);
									$("#setTime").attr("disabled", true);
								}
								hits++;
								$(".counter").text(hits);
							}else{
								hits++;
								$(".counter").text(hits);
							}
						}
					}
				});
				
				$('#setTime').click(function(){
					if( $("#duration").val() && $("#duration").val()>0 ){
						completed =  false;
						started = false;
						timer = $("#duration").val();
						$("#count").text(timer);
						
						hits = 0;
						$(".counter").text(hits);
					}else{
						$("#duration").val("");
					}
				});
				
				$('#restart').click(function(){
					$(".counter").text("0");
					$("#count").text("0");
					$("#duration").attr("disabled", false);
					$("#setTime").attr("disabled", false);
					$("#duration").val("");
					
					timer = 0;
					hits = 0;
					interval = null;
					started = false;
					completed = false;
					
				});
				
			
			});
		</script>
    </body>
</html>

在这里,我使用flex布局做了一个简单的结构。你可以随心所欲地修改它。

在我的脚本中,我设置了不同的变量,如下所示

let timer = 0;
let hits = 0;
let interval = null;
let started = false;
let completed = false;

在bodykeyup 事件中,我正在检查用户是否点击了空格键,即event.keyCode === 32 。这里的32是空格键的代码

完成变量将检查给定的时间是否已经结束。如果是,计数器将被停止。如果不是,它将通过timer > 0 ,检查定时器是否在运行。如果用户没有设置时间并点击空格键,hit变量将被递增1次。

如果定时器正在运行,即用户已经设置了一些特定的时间,例如60秒,我们将检查started变量是 真还是假。

如果是假的,就把它变成真的,并设置一个1秒的间隔,这将减少定时器的值。同时,检查定时器的值是否为0,这意味着任务已经完成,并清除现有的时间间隔。