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 相关文章推荐
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
Sep 22 Javascript
比Jquery的document.ready更快的方法
Apr 28 Javascript
15条JavaScript最佳实践小结
Aug 09 Javascript
Jquery中的层次选择器与find()的区别示例介绍
Feb 20 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 Javascript
Javascript编写2048小游戏
Jul 07 Javascript
AngularJS的ng Http Request与response格式转换方法
Nov 07 Javascript
9个让JavaScript调试更简单的Console命令
Nov 14 Javascript
javascript实现简单的可随机变色网页计算器示例
Dec 30 Javascript
vue-cli项目修改文件热重载失效的解决方法
Sep 19 Javascript
Vue.js路由实现选项卡简单实例
Jul 24 Javascript
JavaScript前端实现压缩图片功能
Mar 06 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面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
深入PHP运行环境配置的详解
2013/06/04 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
525心理活动总结
2014/07/04 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
六年级作文之预言作文
2019/10/25 职场文书
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS