javascript實(shí)現(xiàn)自動輸出文本(打字特效)
主要利用了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");
//要輸出的內(nèi)容
var str=" 傳統(tǒng)的HTML語言不能開發(fā)交互式的動態(tài)網(wǎng)頁,而JavaScript卻能很好的做到這一點(diǎn)。JavaScript是一門相當(dāng)簡單易學(xué)的網(wǎng)絡(luò)化編程語言,通過把她和HTML語言相互結(jié)合起來,能夠?qū)崿F(xiàn)實(shí)時的動態(tài)網(wǎng)頁特效,這給網(wǎng)頁瀏覽者在瀏覽網(wǎng)頁的同時也提供了某些樂趣。";
var pos=0;
//利用遞歸和setTimeout()實(shí)現(xiàn)文字輸出
function printer(){
text.value=str.substring(0,pos)+"|";
//判斷是否到達(dá)結(jié)尾.如果是則一秒后再來一遍.
if(pos++>str.length){
pos=0;
setTimeout("printer()",1000);
}else{
setTimeout("printer()",50);
}
}
</script>
</html>
方法二:JavaScript實(shí)現(xiàn)打字電腦打字效果
<span id="demo"></span>
<script defer>
var text="JavaScript實(shí)現(xiàn)的打字效果" //預(yù)定文字
var delay=200 //文字出現(xiàn)的時間間隔
var i=0 //初始化變量 i
function scrollit(){
//設(shè)置 id 為 demo 的對象內(nèi)的文字為從變量 text 的 0 開始到 i 間的文字加"_"
demo.innerText=text.slice(0,i++)+"_"
if(i>text.length){ //當(dāng) i 大于 text 的文本長度時
i=0 //重設(shè) i 為 0,使文字重新從第一個文字出現(xiàn)
//延時執(zhí)行scrollit()函數(shù),delay*10是為了讓顯示完整文字的時間長一點(diǎn)
setTimeout("scrollit()",delay*10)
}
//否則在delay毫秒后再次執(zhí)行scrollit()函數(shù)
else setTimeout("scrollit()",delay)
}
scrollit() //調(diào)用scrollit()函數(shù)
</script>
方法三:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>標(biāo)題頁</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';}
//開始參數(shù)的定義
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("證監(jiān)會稱將嚴(yán)查利用內(nèi)幕信息牟取不當(dāng)利益行為!"); //要出現(xiàn)的文本
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); //返回?cái)?shù)組從開始到指定位置的字符串
strchar = str.charAt(idx++);//當(dāng)前地址的字符
if (overMe==0 && plysnd==1)
{
//針對瀏覽器的不同,調(diào)用不同的顯示方法
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>
相關(guān)文章
JS畫布動態(tài)實(shí)現(xiàn)黑客帝國背景效果
這篇文章主要為大家詳細(xì)介紹了JS畫布動態(tài)實(shí)現(xiàn)黑客帝國背景效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-11-11
微信小程序 子級頁面返回父級并把子級參數(shù)帶回父級實(shí)現(xiàn)方法
這篇文章主要介紹了微信小程序 子級頁面返回父級并把子級參數(shù)帶回父級實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
postMessage消息通信Promise化的方法實(shí)現(xiàn)
postMessage Api 想必大家都不陌生,WebWorker 通信會用到,iframe 窗口之間通信也會用到,那么我們能不能將 postMessage 進(jìn)行一次轉(zhuǎn)化,把他變成類似 Promise 的使用方式,所以本文給大家介紹了postMessage消息通信Promise化的方法實(shí)現(xiàn),需要的朋友可以參考下2024-03-03
javascript 構(gòu)建一個xmlhttp對象池合理創(chuàng)建和使用xmlhttp對象
在我的這篇舊文里曾經(jīng)發(fā)布了一個簡單的ajax操作類。我們發(fā)現(xiàn),在舊文里創(chuàng)建xmlhttp對象的時候,每次都要new一個對象。而我們都知道new一個對象的開銷是很大的。2010-01-01
JavaScript基于libgif.js實(shí)現(xiàn)控制gif動畫幀
這篇文章主要為大家詳細(xì)介紹了JavaScript如何利用libgif.js插件控制gif動畫幀,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02
判斷用戶的在線狀態(tài) onbeforeunload事件
window.event.clientX和window.event.clientY 將捕捉當(dāng)前事件發(fā)生時鼠標(biāo)相對與窗口的桌面坐標(biāo),通常情況下IE的關(guān)閉按鈕都會在頁面的右上部分,所以點(diǎn)關(guān)閉的時候鼠標(biāo)的坐標(biāo)的Y坐標(biāo)一定是小于0的2011-03-03
js面向?qū)ο髮?shí)現(xiàn)canvas制作彩虹球噴槍效果
這篇文章主要介紹了js面向?qū)ο髮?shí)現(xiàn)canvas制作彩虹球噴槍效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09

