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 相关文章推荐
用js实现的仿sohu博客更换页面风格(简单版)
Mar 22 Javascript
基于JQuery实现CheckBox全选全不选
Jun 27 Javascript
js数组与字符串的相互转换方法
Jul 09 Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 Javascript
JavaScript字符串常用的方法
Mar 10 Javascript
javascript 实现动态侧边栏实例详解
Nov 11 Javascript
JS实现的tab切换选项卡效果示例
Feb 28 Javascript
JS中的作用域链
Mar 01 Javascript
JavaScript+HTML5实现的日期比较功能示例
Jul 12 Javascript
JS实现星星海特效
Dec 24 Javascript
koa2 数据api中间件设计模型的实现方法
Jul 13 Javascript
浅析我对JS延迟异步脚本的思考
Oct 12 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
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php 判断数组是几维数组
2013/03/20 PHP
Nginx实现反向代理
2017/09/20 Servers
YII分模块加载路由的实现方法
2018/10/01 PHP
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
js实现轮播图特效
2020/05/28 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
详解python tcp编程
2020/08/24 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
文史专业毕业生自荐信
2013/11/17 职场文书
写给女朋友的道歉信
2014/01/12 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
大四自我鉴定
2014/02/08 职场文书
质量承诺书范文
2014/03/27 职场文书
秋天的图画教学反思
2014/05/01 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
golang生成并解析JSON
2022/04/14 Golang