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 相关文章推荐
提高代码性能技巧谈—以创建千行表格为例
Jul 01 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
Dec 25 Javascript
在jQuery中 常用的选择器介绍
Apr 16 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
May 07 Javascript
javascript使用smipleChart实现简单图表
Jan 02 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
Node.js+Express配置入门教程
May 19 Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 Javascript
js鼠标跟随运动效果
Mar 11 Javascript
JavaScript禁用右键单击优缺点分析
Jan 20 Javascript
浅谈目前可以使用ES10的5个新特性
Jun 25 Javascript
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 判断数组是几维数组
2013/03/20 PHP
如何在php中正确的使用json
2013/08/06 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
实例讲解php实现多线程
2019/01/27 PHP
类似框架的js代码
2006/11/09 Javascript
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
2014/12/02 Javascript
理解javascript封装
2016/02/23 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
举例介绍Python中的25个隐藏特性
2015/03/30 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
详解python调度框架APScheduler使用
2017/03/28 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
python openssl模块安装及用法
2020/12/06 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
体育教育专业毕业生自荐信
2013/11/15 职场文书
新闻专业个人求职信
2013/12/19 职场文书
班级文化标语
2014/06/23 职场文书
物流专业求职信
2014/06/30 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
基于Python实现将列表数据生成折线图
2022/03/23 Python