Ce chapitre présente principalement l'effet de saisie de texte que l'on peut souvent voir lors de la navigation sur le Web. Le code de cette section utilise principalement l'événement onMousedown et l'attribut event.button. Les principales fonctions et utilisations sont les suivantes.
• La méthode setTimeout, lorsqu'elle est exécutée, exécute l'expression une et une seule fois après avoir retardé le temps spécifié après le chargement.
• La méthode charAt renvoie une valeur de caractère située à la position d'index spécifiée. Le premier caractère de la chaîne a l’index 0, le second l’index 1, et ainsi de suite. Les valeurs d'index en dehors de la plage valide renvoient une chaîne vide.
<html> <head> <title>打字效果的文字特效</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <script language="Javascript"> var layers = document.layers; var style = document.all; var both = layers || style; var idme = 908601; if(layers) //如果不是ie浏览器 { layerRef = 'document.layers'; styleRef = ''; } if(style) //如果是ie浏览器 { layerRef = 'document.all'; styleRef = '.style'; } function writeOnText(obj, str) { //函数在页面上打印字符串 if(layers) { with(document[obj]) { document.open(); document.write(str); //write方法打印字符串 document.close(); } } if(style) eval(obj+'.innerHTML = str'); //使用innerHTML属性显示字符串 } var dispStr = new Array("phpcn"); //字符串数组 var overMe = 0; function txtTyper(str, idx, idObj, spObj, clr1,clr2, delay, plysnd) //函数:实现打字效果 { var tmp0 = tmp1 = '', skip = 100; if(both && idx <= str.length) { if(str.charAt(idx) == '<') { while(str.charAt(idx) != '>') idx++; idx++; } if(str.charAt(idx) == '&' && str.charAt(idx+1) != '') { while(str.charAt(idx) != ';') idx++; idx++; } tmp0 = str.slice(0, idx); tmp1 = 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(idObj, "<span class="+spObj+"><font color='"+clr1+"'>"+tmp0+"</font><font color='"+clr2+"'>"+tmp1+"</font></span>"); //调用writeOnText函数将字符显示在网页上 setTimeout("txtTyper('"+str+"', "+idx+", '"+idObj+"', '"+spObj+"', '"+clr1+"', '"+clr2+"', "+delay+", "+plysnd+")", delay); } } function init() { txtTyper(dispStr[0], 0, 'tt10', 'ttll', '#339933', '#99FF33', 300, 0); //调用txtTyper函数开始打字 } </script> </head> <body onLoad="init();"> <center> <h1>打字效果的文字特效</h1> <hr /> <div class="ttll" id="tt10"></div> </center> </body> </html>
Après avoir exécuté le programme, un message d'invite apparaîtra sur la page, puis les caractères apparaîtront un par un. Une fois les caractères affichés un par un de cette manière, attendez que toute l'impression soit terminée pour arrêter l'impression.
Interprétation du programme source
(1) Le programme crée d'abord une couche avec un ID de ttl0 pour un appel facile plus tard. Ce calque est utilisé pour afficher le texte imprimé.
(2) Le programme ajoute l'événement onLoad sur l'élément
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!