练涛

js实现文字搬运工

图片预览

代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>js练习5</title>
<style>
*{margin:0;padding:0;}
#left,#right{	
	width:300px;
	height:300px;
	font-size:20px;
	float:left;
	border:#01A36E solid;
	word-break: break-all;      /*解决多个重复字母会超出方框的问题*/
	}
#text{
	width:300px;
	height:300px;
	resize:none;
	border:none;
	font-size:20px;
	}
#midle{
	width:110px;
	height:250px;
	border:#01A36E solid;
	text-align:center;
	float:left;
	padding-top:50px;
	}
#btn{
	width:100px;
	height:30px;
	background-color:#E4855A;
	}
#min_3 li{list-style:none;
		  width:10px;
		  height:12px;
		  background-color:#EDB831;
		  float:left;
		  margin-left:3px;
			}
</style>
<script>
window.onload=function(){
	var txt=document.getElementById("text");
	var txt2=document.getElementById("right");
	var oBtn=document.getElementById("btn");
	var oNum=document.getElementById("txtNum");
	var timer2=null;  //给定时器一个编号
	var timer1=null;  //为方便清楚定时器使用
	var timer3=null;
	var aMinLi=document.getElementById("min_3").getElementsByTagName("li");	
	var oMin=document.getElementById("min_3");
	
	oMin.style.display='none';  //初始化ul为不显示
	
	oBtn.onclick=function(){
	oBtn.disabled=true;       //控制点击一次后、js未完成期间不可点击
		
	var i=0;
	var str=""+txt.value;    //把输入的文本生成字符串
	txt2.innerHTML=null;    //新的文本再次转移到右边框时,先把框清空
	var k=str.length;
	timer1=setInterval(function setAttr(){
		for(;i<k;){
			txt2.innerHTML+=str[i];   //实现文字转到右边的效果
			var x=""+txt.value; 
			x=x.substr(1); 	  		//实现左边的文本消失
			txt.value=x;
			break;
			}
			i++;
			if(i==str.length){
				clearInterval(timer1);
			}
		},100);	
	//----------------------------------------	
	var b=str.length;
	timer2=setInterval(function c(){
	var str=""+txt.value;
	//var a=str.length; //在定时器内实时的返回左边剩余的字数
	 var a=b-str.length;	// 实时返回右边进入的数字
	oNum.innerHTML=a+"/"+b;	
	if(a==b){
		clearInterval(timer2);	//完成后把定时器timer2关掉
			}
		},100)
	//----------------------------------------
	//进度条的颜色变换
	var m=0;
	function change(){
		oMin.style.display='block';  //显示ul
		for(var a=0;a<aMinLi.length;a++){
			aMinLi[a].style.backgroundColor='#EDB831';
		}
		for(;m<aMinLi.length;){
			aMinLi[m].style.backgroundColor='#FF2428';
			if(m>=1)
			{
				aMinLi[m-1].style.backgroundColor='#EDB831';
				}
			break;
		} 
		//这个if吊炸天了,,控制颜色变换必须到结尾才消失
		 if(txt.value==''&&m==aMinLi.length){  
			clearInterval(timer3);
			oMin.style.display='none';   //结束时不显示ul
			oBtn.disabled=false;		 //恢复按钮
			}	
		if(m==aMinLi.length)
		{
			m=-1;
			aMinLi[aMinLi.length-1].style.backgroundColor='#ED8831';
			}
		m++;
	}
		clearInterval(timer3);    //可以防止文字未在执行转移时,多次点击产生的乱套
		timer3=setInterval(change,100);
}
}
</script>
</head>

<body>
<div id="left"><textarea id="text"></textarea></div>
<div id="midle">
	<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tbody>
    <tr>
      <td height="30"><input type="button" id="btn" value="去右边"  ></td>
    </tr>
    <tr>
      <td height="30"><p id="txtNum">0/0</p></td>
    </tr>
    <tr>
      <td height="30" valign="middle"><div id="min_3">
      		<ul>
               <li></li>
               <li></li>
               <li></li>
               <li></li>
               <li></li>
               <li></li>
               <li></li>
               <li></li>
            </ul>
       	  </div>
      </td>
    </tr>
  </tbody>
</table>   
</div>
<div id="right"></div>
</body>
</html>


posted @ 2019-08-23 21:18  练涛  阅读(267)  评论(0编辑  收藏  举报