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 相关文章推荐
在JavaScript中通过URL传递汉字的方法
Apr 09 Javascript
Jquery 1.42 checkbox 全选和反选代码
Mar 27 Javascript
JavaScript开发规范要求(规范化代码)
Aug 16 Javascript
JavaScript将数组转换成CSV格式的方法
Mar 19 Javascript
让你一句话理解闭包(简单易懂)
Jun 03 Javascript
Three.js学习之Lamber材质和Phong材质
Aug 04 Javascript
简单实现js菜单栏切换效果
Mar 04 Javascript
创建简单的node服务器实例(分享)
Jun 23 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
Apr 18 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
Jul 26 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
Feb 15 Javascript
ssm+vue前后端分离框架整合实现(附源码)
Jul 08 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/06/03 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
javascript使用isNaN()函数判断变量是否为数字
2013/09/21 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
社区十八大感言
2014/01/19 职场文书
工程款催款函
2015/06/24 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
golang实现浏览器导出excel文件功能
2022/03/25 Golang