⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enjc.htm

📁 一款就阿javascrip打字练习程序
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<html>
<head>
<title>键盘基础练习</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
	body {  margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px}
-->
</style>
 <bgsound id=bgsong src="" >
<script language="javaScript" >
//table {  font-family: "Verdana"; font-size: 12px; color: #000000; text-decoration: none; border: 1px #000000 dashed; filter: Alpha(Opacity=60); background-color: #CC66FF}
//div {  font-family: "Verdana"; font-size: 12px; color: #000000; text-decoration: none; border: 1px #000000 dashed; filter: Alpha(Opacity=60); background-color: #99cc00}
//*************************************
//>>>>>> 英文基础练习       <<<<<<<<<<<<
//>>>>>> Right By Piaoyang80<<<<<<<<<<<<
//>>>>>> 2003/05/21         <<<<<<<<<<<<
//*************************************
//---------------------------------------
//////////////数据说明///////////////////
//设置键盘跟keycode之间的对应。
//setk()      数组是按手指练习的队列1。
//setp()      数组是按位置练习的队列2。
//setkh(),setkp是setk()和setp()所对应的手指位置队列。
//showk()     数组是要显示在显示栏里的目标字符队列,长度为6。
//showh()     相应于 showk的手的位置队列
//showmode    打字模式,首先是顺序显示1,后是随机显示2。
//setmode     设置当前模式是按手指还是位置?手指=1,位置=2
//setmodearray设置当前模式下的具体练习对象?
//savemode    进入设置菜单时保存模式;
//savemodearray
//tmpmode     进入设置菜单后保存数据;
//tmpmodearray
//setshowk    设置当前keycoe数组;
//setshowh    设置当前手的位置数组;
//seted       记录是否已经初始化setshowk();1=已初始化,0=未初始化;
//showk_len   记录当前数组的最大长度。
//imgPath     图片的路径
/////////////////////////////////////////
var showmode=1;
var setmode=1;
var setmodearray=1;
var seted=0;
var setshowk=new Array(14);
var setshowh=new Array(14);
var showk_len=0;
var showk=new Array(6);
var showh=new Array(6);
var imgPath="..\\pub\\img\\";
var mode1_i_now=0;//记录总的次数
var currentKey=0;   //记录当前次数小于6
var kcode=new Array(0,0,0);
var savemode=1;
var savemodearray=1;
var tmpmode=1;
var tmpmodearray=0;
var t_key=0;
//--------------------------------------
//setk()数组设置
var ti;
var setk= new Array(4);
	//如果不想带数字区把数组里面的"49"等数字的ascii码删掉就可以了。
	setk[0]= new Array("81","65","90","80","186","191");
	setk[1]= new Array("87","83","88","79","76","190");
	setk[2]= new Array("69","68","67","73","75","188");
	setk[3]= new Array("82","70","86","85","74","77","84","71","66","89","72","78");
//setpkp()数组设置
var setkh=new Array(4);
	setkh[0]=new Array("hand_l1","hand_l1","hand_l1","hand_r1","hand_r1","hand_r1");
	setkh[1]=new Array("hand_l2","hand_l2","hand_l2","hand_r2","hand_r2","hand_r2");
	setkh[2]=new Array("hand_l3","hand_l3","hand_l3","hand_r3","hand_r3","hand_r3");
	setkh[3]=new Array("hand_l4","hand_l4","hand_l4","hand_r4","hand_r4","hand_r4","hand_l4","hand_l4","hand_l4","hand_r4","hand_r4","hand_r4");

//setp数组设置
var setp=new Array(3);
	//setp[0]=new Array("49","50","51","52","53","54","55","56","57","48");
	setp[0]=new Array("81","87","69","82","84","89","85","73","79","80");
	setp[1]=new Array("65","83","68","70","71","72","74","75","76","186");
	setp[2]=new Array("90","88","67","86","66","78","77","188","190","191");
//setph数组设置
var setph=new Array(3);
	//setph[0]=new Array("hand_l1","hand_l2","hand_l3","hand_l4","hand_l4","hand_r4","hand_r4","hand_r3","hand_r2","hand_r1");
	setph[0]=new Array("hand_l1","hand_l2","hand_l3","hand_l4","hand_l4","hand_r4","hand_r4","hand_r3","hand_r2","hand_r1");
	setph[1]=new Array("hand_l1","hand_l2","hand_l3","hand_l4","hand_l4","hand_r4","hand_r4","hand_r3","hand_r2","hand_r1");
	setph[2]=new Array("hand_l1","hand_l2","hand_l3","hand_l4","hand_l4","hand_r4","hand_r4","hand_r3","hand_r2","hand_r1");

//顺序显示模式

function mode1(){
	var i=0;
	var j=0;
	if (seted==0){
		//初始化
		mode1_i_now=0;
		currentKey=0;
		if (setmode==1){
			//手指形式
			showk_len=setk[parseInt(setmodearray)].length;
			for (i=0;i<showk_len;i++){
				setshowk[i]=setk[parseInt(setmodearray)][i];
				setshowh[i]=setkh[parseInt(setmodearray)][i];
				showmode=1;
			}
		}
		if (setmode==2){
			//位置形式
			showk_len=setp[parseInt(setmodearray)].length;
			for (i=0;i<showk_len;i++){
				setshowk[i]=setp[parseInt(setmodearray)][i];
				setshowh[i]=setph[parseInt(setmodearray)][i];
				showmode=1;
			}
		}
	}
	seted=1;
	if (showk_len-mode1_i_now>6){
		for(i=0;i<6;i++){
			//设置showk
			showk[i]=setshowk[i];
			showh[i]=setshowh[i]
		}
		//mode1_i_now=i;应该是在kdown事件里付值。
	}
	else{
		j=0;
		for(i=mode1_i_now;i<showk_len;i++){
			//设置剩下的showk
			showk[i-mode1_i_now]=setshowk[i];
			showh[i-mode1_i_now]=setshowh[i];
			j++;
		}
		for(i=j;i<6;i++){
			showk[i]=setshowk[i];
			showh[i]=setshowh[i];
			showmode=2;//下次开始就是随机调用了。
		}
	}
	//调用初始化显示区程序;
	initKeybord();
	//调用显示当前键盘情况程序;
	showKeybord(0);
}
//随机显示模式
function mode2(){
	var randomK;
	var i;
	for(i=0;i<6;i++){
		randomK=Math.round((showk_len-1)*Math.random());
		showk[i]=setshowk[randomK];
		showh[i]=setshowh[randomK]
	}
	//调用初始化显示区程序;
	initKeybord();
	//调用显示当前键盘情况程序;
	showKeybord(0);
}
//练习全部键盘模式
function mode3(){
	var randomm;
	var randomK;
	var ml;
	var i;
	for(i=0;i<6;i++){
		//定义一个区域
		randomm=Math.round(2*Math.random());
		//定义区域中的一个键
		ml=setp[randomm].length;
		randomK=Math.round((ml-1)*Math.random());

		showk[i]=setp[randomm][randomK];
		showh[i]=setph[randomm][randomK];
	}
	//调用初始化显示区程序;
	initKeybord();
	//调用显示当前键盘情况程序;
	showKeybord(0);
}
//初始化显示区程序;
function initKeybord(){
	document.all("m1").src=imgPath+showk[0]+".jpg";
	document.all("m2").src=imgPath+showk[1]+".jpg";
	document.all("m3").src=imgPath+showk[2]+".jpg";
	document.all("m4").src=imgPath+showk[3]+".jpg";
	document.all("m5").src=imgPath+showk[4]+".jpg";
	document.all("m6").src=imgPath+showk[5]+".jpg";
	document.all("m1").style.filter="";
	document.all("m2").style.filter="";
	document.all("m3").style.filter="";
	document.all("m4").style.filter="";
	document.all("m5").style.filter="";
	document.all("m6").style.filter="";
	currentKey=0;
}
//显示当前键盘情况;
function showKeybord(arryN){
	var i=arryN;
	var mName="m"+(arryN+1);
	//设置显示区
	document.all(mName).style.filter="invert()";
	//设置键盘区
	document.all(showk[i]).style.filter="invert()";
	//设置手
	var h=showh[i];
	document.all("hand_l").src=imgPath+"hand_l.jpg";//恢复
	document.all("hand_r").src=imgPath+"hand_r.jpg";
	if (h.indexOf('l')>-1){
		//左手
		document.all("hand_l").src=imgPath+h+".jpg";
	}
	else{
		//右手
		document.all("hand_r").src=imgPath+h+".jpg";
	}
}
//打字处理程序;
function kup(){
	if (checkKey(kcode[1])>0)
		document.all(kcode[1].toString()).style.filter="";
	kcode[1]=event.keyCode;//当前按下的键码
	if (checkKey(kcode[1])>0){	
		if (kcode[0] !=0)      //清楚之前打错的记录
			document.all(kcode[0].toString()).style.filter="";
		if (kcode[1]==showk[currentKey]){
				kcode[0]=0;//清楚记录 
				currentKey++;
				mode1_i_now++;
				mName="m"+currentKey;
				document.all(mName).style.filter="";
				document.all(kcode[1].toString()).style.filter="";
				if (currentKey>=6){
					currentKey=0;				
					if (showmode==1)
						mode1();//按顺序
					else if(showmode==2)
						mode2();//随机
					else if(showmode==3)
						mode3();//全部
				}
				else{
					showKeybord(currentKey);
				}
		}
		else{
			kcode[0]=kcode[1];
			document.all(kcode[0].toString()).style.filter="Xray()"
		}
	}	
}
function kdown(){
	kcode[1]=event.keyCode;//当前按下的键码
	if (checkKey(kcode[1])>0)
		document.all(kcode[1].toString()).style.filter="gray()";
}
//检查所输入的是否符合规格;
function checkKey(kcode){
	var ri;
	ri=0;
	if (kcode>47&&kcode<58)
		ri=1;
	if (kcode>64&&kcode<91)
		ri=2;
	if ((kcode>=186&&kcode<=191)||(kcode>=219&&kcode<=222))
		ri=3;
	return ri;
}
//保存当前状态
function savem(sm){
if(t_key==0){
	savemode=sm;
	savemodearray=setmodearray;
	if (sm==1){
		kmenu.style.visibility='';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -