Auteur:Eve ColeDate de mise à jour:2009-06-20 16:54:28
Tout d'abord, ce que je veux dire, c'est que je le suis, et ces articles sont dédiés à ceux qui veulent apprendre comme moi. Plusieurs amis du forum ont posté des effets de buffering, mais c'est vraiment pénible pour moi de lire leur code. Parce qu'ils ne sont pas au même niveau, j'utilise le code le plus redondant pour écrire cet effet. Le but est d'espérer que vous pourrez le comprendre. Quand nous ne sommes pas bons dans ce domaine, nous reviendrons sur les choses. Maîtres. Enfin, s'il vous plaît, croyez cette phrase : Un jour tu deviendras un maître, (à condition de travailler dur haha^^)
Boîte de code d'exécution [Ctrl+A Tous les conseils de sélection : vous pouvez d'abord modifier une partie du code, puis appuyer sur Exécuter]
Veuillez regarder ces deux codes clés :
function f_s(){ var obj=document.getElementById("box");//Obtenir l'objet avec la boîte d'ID obj.style.display="block";//Définir l'objet obj à afficher obj.style.width="1px"; //Définit la largeur de l'objet obj sur 1px var changeW=function(){ //(A propos de la fonction, quelle fermeture, quelle classe, prototype, ça me fait grossir la tête, je le comprendrai lentement dans le futur. Ce que je comprends ici, c'est créer une fonction pour mesurer directement et put Il est stocké dans la variable changeW) var obj_w=parseInt(obj.style.width);//Convertir la largeur de l'objet en valeur numérique et la stocker dans la variable obj_w; if(obj_w<600){ //Juge, si la valeur de largeur est inférieure à 600 obj.style.width=(obj_w+Math.ceil((600-obj_w)/15))+"px";//Calculez la largeur de l'objet. . . À mesure que la largeur s'allonge, l'incrément devient de plus en plus petit } autre{ clearInterval(bw);//S'il est supérieur ou égal à 600, setInterval ne sera plus exécuté, ce qui signifie que la largeur cessera d'augmenter à ce moment. } } var bw=window.setInterval(changeW,1)//Appel changeW toutes les 0,001 secondes }
//lent à rapide de lent à rapide //Déclare une fonction s_f() fonction s_f(){ var obj=document.getElementById("box2"); var e_add=1;//Incrément d'initialisation obj.style.display="bloc"; obj.style.width="1px"; var changeW=function(){//Ce que je comprends, c'est créer un littéral de fonction et le stocker dans la variable changeW var obj_w;e_add obj_w=parseInt(obj.style.width); e_add*=1.05;//La valeur de chaque incrément suivant est si(obj_w<600){ obj.style.width=(obj_w+e_add)+"px";//À mesure que la largeur s'allonge, l'incrément devient de plus en plus grand } autre{ clearInterval(bw); obj.style.width="600px";//Parce que (obj_w+e_add) cette méthode de calcul dépassera la largeur prédéfinie, donc sa largeur est réinitialisée après la mise en mémoire tampon. Cela crée une illusion haha. } } var bw=window.setInterval(changeW,1) }