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 相关文章推荐
firefox火狐浏览器与与ie兼容的2个问题总结
Jul 20 Javascript
jQuery :first选择器使用介绍
Aug 09 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
Oct 17 Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
全面解析Bootstrap表单使用方法(表单样式)
Nov 24 Javascript
jQuery如何使用自动触发事件trigger
Nov 29 Javascript
走进javascript——不起眼的基础,值和分号
Feb 24 Javascript
javascript将list转换成树状结构的实例
Sep 08 Javascript
Vuex实现计数器以及列表展示效果
Mar 10 Javascript
你点的 ES6一些小技巧,请查收
Apr 25 Javascript
vue store之状态管理模式的详细介绍
Jun 13 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 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面向对象编程快速入门
2006/10/09 PHP
PHP 组件化编程技巧
2009/06/06 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
Smarty模板语法详解
2019/07/20 PHP
js限制文本框输入长度两种限制方式(长度、字节数)
2012/12/19 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
使用Python生成XML的方法实例
2017/03/21 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
求职信模版
2013/11/30 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
团队口号大全
2014/06/06 职场文书
教师辞职信范文
2015/02/28 职场文书
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技