javascript实现自动输出文本(打字特效)


Posted in Javascript onAugust 27, 2015

主要利用了setTimeout(),递归和String.substring();

做出的效果就像是有一个打字员在打字.

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="Generator" content="EditPlus®">
 <meta name="Author" content="">
 <meta name="Keywords" content="">
 <meta name="Description" content="">
 <title>Document</title>
</head>
<body bgcolor="#ccc" onload="printer();">
  <h2 align="center">文本自动输出</h2>
  <br>
  <br>
  <hr width="400" color="black">
  <br>
 <form align="center">
  <textarea cols="50" rows="30" id="text" style="background-color:#FF99CC; color: #330033; cursor: default; font-family: Arial; font-size: 18px" wrap=virtual></textarea>
 </form>
</body>
<script type="text/javascript">

  //获取textarea对象
  var text=document.getElementById("text");
  //要输出的内容
  var str="  传统的HTML语言不能开发交互式的动态网页,而JavaScript却能很好的做到这一点。JavaScript是一门相当简单易学的网络化编程语言,通过把她和HTML语言相互结合起来,能够实现实时的动态网页特效,这给网页浏览者在浏览网页的同时也提供了某些乐趣。";
  var pos=0;
  //利用递归和setTimeout()实现文字输出
  function printer(){
    text.value=str.substring(0,pos)+"|";
    //判断是否到达结尾.如果是则一秒后再来一遍.
    if(pos++>str.length){
      pos=0;
      setTimeout("printer()",1000);
    }else{
      setTimeout("printer()",50);
    }
  }
</script>
</html>

方法二:JavaScript实现打字电脑打字效果

<span id="demo"></span>
<script defer>
var text="JavaScript实现的打字效果"  //预定文字
var delay=200             //文字出现的时间间隔
var i=0                //初始化变量 i
function scrollit(){
//设置 id 为 demo 的对象内的文字为从变量 text 的 0 开始到 i 间的文字加"_"
demo.innerText=text.slice(0,i++)+"_"  
if(i>text.length){       //当 i 大于 text 的文本长度时
  i=0              //重设 i 为 0,使文字重新从第一个文字出现
//延时执行scrollit()函数,delay*10是为了让显示完整文字的时间长一点
  setTimeout("scrollit()",delay*10) 
}
  //否则在delay毫秒后再次执行scrollit()函数
else setTimeout("scrollit()",delay)       
}
scrollit() //调用scrollit()函数
</script>

方法三:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>标题页</title>
 <script language=javascript>
var layers =document.layers;
var style=document.all;
var both=layers||style;
var idme=908601;
if(layers)
{ layerRef='document.layers';styleRef ='';}
if(style)
{ layerRef='document.all';styleRef = '.style';}
//开始参数的定义
function writeOnText(obj,str)
{
if(layers)with(document[obj])
{ document.open();document.write(str);document.close();}
if(style)eval(obj+'.innerHTML=str'); 
}
var dispStr=new Array("证监会称将严查利用内幕信息牟取不当利益行为!"); //要出现的文本
var overMe=0;
//逐字显示的方法
function txtTyper(str,idx,objId,objStyle,color1,color2,delay,plysnd)
{
var mystr='',strchar='';
var skip=200;
if (both && idx<=str.length) {
if (str.charAt(idx)=='<'){ while(str.charAt(idx)!='>') idx++;}
if (str.charAt(idx)=='&'&&str.charAt(idx+1)!=' '){ while (str.charAt(idx)!= ';')idx++;}
mystr = str.slice(0,idx);  //返回数组从开始到指定位置的字符串
strchar = str.charAt(idx++);//当前地址的字符
if (overMe==0 && plysnd==1)
{
//针对浏览器的不同,调用不同的显示方法
if (navigator.plugins[0]){
if(navigator.plugins["LiveAudio"][0].type=="audio/basic" && navigator.javaEnabled())
{document.embeds[0].stop();
setTimeout("document.embeds[0].play(false)",100);}
} else if (document.all){
ding.Stop();
setTimeout("ding.Run()",100);}
overMe=1;}else overMe=0;
writeOnText(objId, "<span class="+objStyle+"><font color='"+color1+"'>"+mystr+"</font><font color='"+color2
+"'>"+strchar+"</font></span>");
setTimeout("txtTyper('"+str+"', "+idx+", '"+objId+"', '"+objStyle+"', '"+color1+"', '"+color2+"', "+delay+" ,"+plysnd+")",delay);}}
function init()
{txtTyper(dispStr[0], 0, 'div1', 'style1', '#66CCBB', '#000000', 400, 0);}
</script>
<BODY onload=init()>
<DIV class=style1 id=div1></DIV>
</BODY>
</html>
Javascript 相关文章推荐
如何获取JQUERY AJAX返回的JSON结果集实现代码
Dec 10 Javascript
基于jquery的simpleValidate简易验证插件
Jan 31 Javascript
javascript实现获取字符串hash值
May 10 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
js实现滚动条滚动到页面底部继续加载
Dec 19 Javascript
JavaScript定时器实现的原理分析
Dec 06 Javascript
js获取json中key所对应的value值的简单方法
Jun 17 Javascript
对Vue table 动态表格td可编辑的方法详解
Aug 28 Javascript
Vue自定义全局Toast和Loading的实例详解
Apr 18 Javascript
Async/Await替代Promise的6个理由
Jun 15 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
Oct 23 jQuery
vue+iview实现分页及查询功能
Nov 17 Vue.js
jquery+php随机生成红包金额数量代码分享
Aug 27 #Javascript
javascript模拟C#格式化字符串
Aug 26 #Javascript
jQuery实现滚动切换的tab选项卡效果代码
Aug 26 #Javascript
基于jquery实现一个滚动的分步注册向导-附源码
Aug 26 #Javascript
jQuery带时间的日期控件代码分享
Aug 26 #Javascript
js仿苹果iwatch外观的计时器代码分享
Aug 26 #Javascript
jQuery下拉友情链接美化效果代码分享
Aug 26 #Javascript
You might like
php 求质素(素数) 的实现代码
2011/04/12 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
javascript之ESC(第二类混淆)
2007/05/06 Javascript
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
JS实现的字符串数组去重功能小结
2019/06/17 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
python多进程共享变量
2016/04/06 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
python中get和post有什么区别
2020/06/19 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
幼儿园小班评语
2014/04/18 职场文书
写给医生的感谢信
2015/01/22 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python