Maison > interface Web > js tutoriel > le corps du texte

Présentation d'un exemple d'effet spécial utilisant javascript pour obtenir un effet de saisie de texte

伊谢尔伦
Libérer: 2017-04-29 14:53:08
original
1810 Les gens l'ont consulté

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 = &#39;document.layers&#39;; 
styleRef = &#39;&#39;; 
} 
if(style) //如果是ie浏览器 
{ 
layerRef = &#39;document.all&#39;; 
styleRef = &#39;.style&#39;; 
} 
function writeOnText(obj, str) { //函数在页面上打印字符串 
if(layers) { 
with(document[obj]) { 
document.open(); 
document.write(str); //write方法打印字符串 
document.close(); 
} 
} 
if(style) eval(obj+&#39;.innerHTML = str&#39;); //使用innerHTML属性显示字符串 
} 
var dispStr = new Array("phpcn"); //字符串数组 
var overMe = 0; 
function txtTyper(str, idx, idObj, spObj, clr1,clr2, delay, plysnd) //函数:实现打字效果 
{ 
var tmp0 = tmp1 = &#39;&#39;, skip = 100; 
if(both && idx <= str.length) { 
if(str.charAt(idx) == &#39;<&#39;) { 
while(str.charAt(idx) != &#39;>&#39;) idx++; 
idx++; 
} 
if(str.charAt(idx) == &#39;&&#39; && str.charAt(idx+1) != &#39;&#39;) { 
while(str.charAt(idx) != &#39;;&#39;) 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=&#39;"+clr1+"&#39;>"+tmp0+"</font><font color=&#39;"+clr2+"&#39;>"+tmp1+"</font></span>"); 
//调用writeOnText函数将字符显示在网页上 
setTimeout("txtTyper(&#39;"+str+"&#39;, "+idx+", &#39;"+idObj+"&#39;, &#39;"+spObj+"&#39;, &#39;"+clr1+"&#39;, &#39;"+clr2+"&#39;, "+delay+", "+plysnd+")", delay); 
} 
} 
function init() 
{ 
txtTyper(dispStr[0], 0, &#39;tt10&#39;, &#39;ttll&#39;, &#39;#339933&#39;, &#39;#99FF33&#39;, 300, 0); //调用txtTyper函数开始打字 
} 
</script> 
</head> 
<body onLoad="init();"> 
<center> 
<h1>打字效果的文字特效</h1> 
<hr /> 
 
<div class="ttll" id="tt10"></div> 
</center> 
</body> 
</html>
Copier après la connexion

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 Lorsque la page entière est chargée, l'événement est déclenché et la fonction de gestion des événements init() est appelée pour traiter l'événement.
(3) Dans la fonction txtTyper(), utilisez la méthode charAt pour obtenir un certain caractère dans la chaîne. Utilisez l'instruction conditionnelle if pour déterminer si le caractère correspond à la fin. Imprimé sur la page une fois les conditions remplies.
(4) Dans l'instruction if, vous pouvez également utiliser n'importe quelle instruction Javascript légale pour effectuer des opérations plus complexes.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal