使用JS实现文字搬运工

效果图:

代码如下,复制即可使用:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>使用JS实现文字搬运工</title>
<style>
/*设置整体背景、清空边界和填充等样式*/
html, body {
margin: 0;
padding: 0;
background: #C0C0C0;
}
/*设置文字移动框所在的DIV宽度、背景色、填充及圆角边框等样式*/
#wrapper {
margin: 50px auto;
width: 800px;
background: #fff;
overflow: hidden;
padding: 20px;
border-radius: 10px;
}
/*设置左侧文字输入框背景色、宽高、填充、左浮动及字体大小等样式*/
textarea {
background: #EFEFD6;
border: none;
width: 320px;
height: 220px;
float: left;
padding: 10px;
font-size: 18px;
}
/*设置右侧结果框背景色、宽高、填充、右浮动等样式*/
#right {
width: 320px;
height: 220px;
background: #63EFF7;
float: right;
padding: 10px;
}
/*设置中间操作部分浮动、宽度、文本居中*/
#center {
float: left;
width: 120px;
text-align: center;
}
/*设置中间超链接样式*/
#center a {
display: block;
color: #fff;
background: #F76300;
text-decoration: none;
padding: 10px;
margin: 0 5px;
font-family: '微软雅黑';
}
/*设置中间进度显示数字样式*/
#center p {
font-size: 20px;
font-family: '微软雅黑';
}
/*设置进度显示条的样式并透明显示*/
#center ul {
margin: 0;
padding: 0;
font-size: 0;
opacity: 0; }
/*设置进度显示条的每个点*/
li {
list-style: none;
display: inline-block;
width: 8px;
height: 10px;
background: #E7A521;
margin: 2px;
}
/*不允许用户调整左侧文本输入框的大小*/
textarea{
resize: none;
}
</style>
<script>
window.onload=function(){
var left=document.getElementById('left');
var btn=document.querySelector('#center a');
var all=document.getElementById('all');
var right=document.getElementById('right')
var current=document.getElementById('current')
var progress=document.getElementById('progress')
var lis=document.querySelectorAll('progress li')
var n=0;
btn.onclick=function(){
/*每次点击按钮时,清空右侧文字,当前数字从0开始计数*/
right.innerHTML='';
current.innerHTML='0';
if(!left.value){
alert('请输入内容');
return;
} var str=left.value;
all.innerHTML=str.length;
//超链接颜色变浅
this.style.opacity='0.5'
//显示进度条
progress.style.opacity='1' var timer=setInterval(function(){
str=left.value;
right.innerHTML += str.substring(0,1);
left.value=left.value.substring(1);
current.innerHTML=right.innerHTML.length; for(var i=0;i<lis.length;i++){
lis[i].style.background='#E7A521';
}
//将其中一个块变红色
lis[n].style.background='red';
//下次移动问责内容,下一个块变红色
n++;
//红块移到头,再从头开始
if(n==lis.length){
n = 0;
} /*左侧文字移动完毕后,移动事件失效*/
if(!left.value){
clearInterval(timer)
btn.style.opacity='1';
progress.style.opacity='0'
}
},80); }
}
</script>
</head>
<body>
<div id="wrapper">
<textarea id="left"></textarea>
<div id="center">
<a href="javascript:">把文字右移</a>
<p>
<span id="current">0</span>/
<span id="all">0</span>
</p>
<ul id="progress">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div id="right"></div>
</div>
</body>
</html>

如果您有更好的方法或更多的功能,可以和我们大家一起来分享哦,如有错误,欢迎联系我改正,非常感谢!!!

使用JS实现文字搬运工的更多相关文章

  1. js实现文字截断

    先前用jq做了一个文字截断功能,但是不用jq的项目要实现此功能还要引如jq显得过于麻烦.这里写了一个js的文字截断功能.直接上代码. HTML(测试用的): <div>我是pox我是pox ...

  2. js实现文字逐个显示

    先把代码摆上了吧: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtm ...

  3. JS控制文字只显示两行,超出部分显示省略号

    由于使用css控制文字只显示多行,超出部分显示省略号,存在一定的兼容性问题,所以总结了一下网上一些大咖使用js实现控制行数的解决方案. 第一步:依次引入jquery.js+jquery.ellipsi ...

  4. js对文字进行编码

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...

  5. JS实现文字转语音播放

    JS实现文字转语音播放背景实现方式第一种:百度文字转语音开放API第二种:微软TTS语音引擎第三种:SpeechSynthesisUtterance总结背景在做项目的过程中,经常会遇到场景是客户要求播 ...

  6. js实现文字上下滚动效果

    大家都知道,做html页面时,为了提升网页的用户体验,我们需要在网页中加入一些特效,比如单行区域文字上下滚动就是经常用到的特效.如下图示效果: <html> <head> &l ...

  7. js 实现文字滚动功能,可更改配置参数 带完整版解析代码。

    前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         本篇文章为您分析一下原生JS写文字滚动效果 需求分析: 需要 ...

  8. JS实现文字截取(雾)

    今天在跳板群那里看到一个神奇的样式,效果: 感觉十分神奇,因为一开始以为他是只有一个P元素包着文字然后最后一个自动截取文字,而且最后一行还可以提前截取???这怎么做到的,然后想了一下css怎么做,好像 ...

  9. three.js添加文字

    添加文字需要用到fontLoader,测试貌似只能异步.在success中回调. 对于中文字体,需要将ttf格式转换为json格式或者是js格式之后才能使用,不过一般转换之后的文件比较大.建议使用Fo ...

随机推荐

  1. MVC 中@Html.DropDownListFor() 设置选中项 这么不好使 ? [问题点数:40分,结帖人lkf181]

    http://bbs.csdn.net/topics/390867060 由于不知道错误原因在哪 我尽量把代码都贴出来吧:重点是:在 Controller 类里 我给 SelectListItem集合 ...

  2. interface思考练习一

    参考了这篇文章,博主超级优秀,看他的最好,我只是写了点自己看他的博文学到的东西.CSDNzdwzzu2006 接口这东西认真学是在第一次构建工程的时候,很晕菜,原来学SE时不扎实,导致东西都不会用,看 ...

  3. extract_by_one 根据二维数组中某字段来提取数组信息,查看有无重复信息

    public function tt(){ $param = array( array ( 'hykno' => '2222222-CB', 'tcdk_fid' => '458B6D70 ...

  4. python基础之模块之序列化

    ---什么是序列化(picking)? 我们把变量从内存中变成可存储或传输的过程称之为序列化. 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 反过来,把变量内容从序列化的 ...

  5. ElasticStack系列之八 & _source 字段

    有很多人会有这样的一个疑问: _source字段存储的是索引的原始内容,那 store 属性的设置是为何呢?elasticsearch 为什么要把 store 的默认取值设置为 no?设置为 yes ...

  6. P2158 [SDOI2008]仪仗队 && 欧拉函数

    P2158 [SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线 ...

  7. RabbitMQ基础篇

    介绍 RabbitMQ 是一个消息中间件:它接收并转发消息.您可以把它想象为一个邮局:当您把需要寄出的邮件投递到邮箱,邮差最终会把邮件送给您的收件人.在这个比喻中,RabbitMQ 就是一个邮箱,也可 ...

  8. bzoj千题计划143:bzoj1935: [Shoi2007]Tree 园丁的烦恼

    http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y #include<cstdio> #i ...

  9. e.getMessage() e.printStackTrace() 和e.printStackTrace() 小结

    1 e.getMessage() ;    只会获得异常的名称.比如说NullPoint 空指针,就告诉你说是空指针 2.e.toString():  获得异常种类和错误信息 3.e.printSta ...

  10. ul标签的高度为0

    由于项目中使用ul+li的布局方式,在ie8.chrome浏览器中,包裹浮动的li元素的外层ul高度为0,ie7浏览器和ie8兼容模式显示正常,这是典型的浏览器兼容性问题. 解决办法: 第一种:设置u ...