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 indexOf函数使用说明
Jul 03 Javascript
window.location.hash知识汇总
Nov 09 Javascript
JavaScript实现点击按钮就复制当前网址
Dec 14 Javascript
基于Vuejs实现购物车功能
Aug 02 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
Sep 21 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
Oct 27 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
Aug 11 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
Oct 11 Javascript
a标签调用js的方法总结
Sep 05 Javascript
vue跳转页面的几种方法(推荐)
Mar 26 Javascript
一篇文章带你从零快速上手Rollup
Sep 07 Javascript
微信小程序实现底部弹出框
Nov 18 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+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
javascript Base类 包含基本的方法
2009/07/22 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
Python求出0~100以内的所有素数
2018/01/23 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
pandas的排序和排名的具体使用
2019/07/31 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
董事长秘书职责
2014/01/31 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
个人近期表现材料
2014/02/11 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
golang中的空接口使用详解
2021/03/30 Python
pytorch实现ResNet结构的实例代码
2021/05/17 Python