| 編程(Programming)是編定程序的中文簡(jiǎn)稱,就是讓計(jì)算機(jī)代碼解決某個(gè)問題,對(duì)某個(gè)計(jì)算體系規(guī)定一定的運(yùn)算方式,使計(jì)算體系按照該計(jì)算方式運(yùn)行,并最終得到相應(yīng)結(jié)果的過程。為了使計(jì)算機(jī)能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計(jì)算體系之間交流的過程就是編程。 【實(shí)例名稱】 文字的打字效果 【實(shí)例描述】 打字效果是將一段文本逐個(gè)文字地顯示,實(shí)現(xiàn)打字的效果。本例學(xué)習(xí)如何制作這樣的特效。 【實(shí)例代碼】
<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)會(huì)稱將嚴(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)
{
//針對(duì)瀏覽器的不同,調(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中,添加一個(gè)div,代碼如下所示:
<BODY onload=init()>
<DIV class=style1 id=div1></DIV>
</BODY>
</html>
【運(yùn)行效果】  【難點(diǎn)剖析】 本例的重點(diǎn)其實(shí)是實(shí)現(xiàn)這種效果的思路,代碼并不是關(guān)鍵。在本例中,要實(shí)現(xiàn)一段文本的打字特效,首先將這段文本放在數(shù)組中,然后利用兩個(gè)變量,實(shí)現(xiàn)打字和顯示的效果,“打字”變量只是顯示光標(biāo)當(dāng)前的某個(gè)字符,而“顯示”變量則顯示當(dāng)前光標(biāo)前所有的字符。 【源碼下載】 本實(shí)例JS代碼下載
使用編程語言寫的程序,由于每條指令都對(duì)應(yīng)計(jì)算機(jī)一個(gè)特定的基本動(dòng)作,所以程序占用內(nèi)存少、執(zhí)行效率高。 |