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 相关文章推荐
二行代码解决全部网页木马
Mar 28 Javascript
在模板页面的js使用办法
Apr 01 Javascript
JS文本框不能输入空格验证方法
Mar 19 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
Aug 06 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
实例详解display:none与visible:hidden的区别
Mar 30 Javascript
ReactNative中使用Redux架构总结
Dec 15 Javascript
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
JavaScript中发出HTTP请求最常用的方法
Jul 12 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
Aug 04 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/12/17 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
图片之间的切换
2006/06/26 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
在react中使用vuex的示例代码
2018/07/30 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
微信小程序实现打卡日历功能
2020/09/21 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
python概率计算器实例分析
2015/03/25 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
python队列Queue的详解
2019/05/10 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
中文系师范生自荐信
2013/10/01 职场文书
新闻编辑自荐书范文
2014/02/12 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
高三英语教学反思
2016/03/03 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
Django migrate报错的解决方案
2021/05/20 Python
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL