FADING OBJETS HTML

XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 - 1 sept. 2008 à 18:15
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009 - 8 sept. 2008 à 10:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47844-fading-objets-html

Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
8 sept. 2008 à 10:28
D'ailleurs je viens de me rendre compte que j'ai oublié de mettre à jour http://vedlen.free.fr/fading-cs.html lors de la dernière mise à jour :/ ce que je fais tout de suite
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
8 sept. 2008 à 10:26
Tu as une erreur de syntaxe javascript. Mets ça à la place :

[javascript:void(0) Visitez mon portfolio ici]



Tu as oublié le onClick
cosycorner Messages postés 31 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 18 mai 2009
8 sept. 2008 à 10:22
bonjour;
J'ai utilisé ton script. Merci de partager ta source :)

Mais il ne marche pas avec un lien; je ne sais pas si mon code est mal agencé.

le voici :

[javascript:void(0) Visitez mon portfolio ici]

Ya til une erreur de syntaxe ou le script est-il exclusif ?
Merci
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
5 sept. 2008 à 10:45
ah ok je ne savais pas que ça portait ce nom la. Ceci dit les paramètres qui sont passés ne sont que des entiers donc pas de risque de bug.

Pour le namespace, quoi qu'il en soit il faut quand même des variables. Elles sont juste déclarées au sein du namespace ou de fonctions, et non pas en "liberté" dans le code brut. C'est peut être un petit peu plus clean au niveau global, ok, mais bon.

Tout passer en paramètre je crois que ça rend un code encore plus dégueulasse que les variables globales :P
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 sept. 2008 à 10:30
mettre une lambda, c'est :
remplacer : setTimeout("GoFading("+ID+","+Sens+")",fad_millisec);
par : setTimeout(function(){ GoFading( ID, Sens) },fad_millisec);

ca te fait un code carement plus propre, et ca t'evite les bugs (dans les cas ou tu veux passer une chaine qui contient ", ta methode peut planter...)

et sinon, tu aurais pu utiliser un namespace, ca t'aurait evite d'avoir des globales (ok c'est un hack pas terrible, mais c'est deja mieux que d'avoir des globales) ou alors, tout passer en parametres.
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
5 sept. 2008 à 10:15
"cela ne te coute rien de placer un exemple de l'utilisation."
J'uploaderai un zip avec le fichier HTML lors d'une prochaine màj

"pourquoi ne pas utiliser une fonction ?"
Comment ça ? Qu'est-ce que tu suggères ? Si tu fais allusion à setInterval ça a déjà été discuté ci-dessus, mais j'ai retenu setTimeout en choix personnel (niveau perf c'est équivalent)

"sinon, les variables globales, c'est moche... et tu aurais pu t'en passer."
Non je ne pouvais pas m'en passer car tous les paramètres sont indépendant les uns des autres à chaque appel de la fonction. A la limite utiliser un seul tableau multidimensionnel, mais c'est la misère à coder ensuite vu qu'il y a déjà des tableaux multidimensionnels.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 sept. 2008 à 08:57
j'ai rien de particulier a dire sur l'utilite de la source, ou la qualite de l'animation, elle a l'air de bien remplire ses fonctions, j'aimerais juste ajouter deux trois mots sur la qualite du code :

setTimeout("GoFading("+ID+","+Sens+")",fad_millisec);

pourquoi ne pas utiliser une fonction ? (une lambda)

sinon, les variables globales, c'est moche... et tu aurais pu t'en passer.
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
4 sept. 2008 à 21:00
Velden, cela ne te coute rien de placer un exemple de l'utilisation.
Dans quelques temps ton lien n'existeras peut-être plus, donc plus de possibilité d'avoir un exemple d'utilisation.

D'avance merci de ta collaboration.
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
2 sept. 2008 à 09:54
"Bon on dois pas avoir la meme definition du mot."
Ce que j'appelle générique est la facilité d'intégration du code

"Et bien enplus de tes trois fonction qui aurait pu n'en faire qu une , il y a aussi 8 variables globales donc 8 mot reservé pour ton code, pour une page simple ca pause pas de probleme mais..."
J'aurai pu effectivement concentrer 2 fonctions en 1, mais peut être pas les 3 en une. Le but étant de faire un code clair et non pas une course à la réduction de caractère.
Pour ce qui est des variables globales, rien n'empêche de créer un préfixe pour être sûr d'éviter tout conflit avec du code extérieur.

"De plus a part l'usage du mot clé new devant la fonction je vois pas ce qui a de plus fastidieux dans l utilisation de class"
Voilà, le problème est justement là. Je voulais éviter un déclanchement en 2 temps. En utilisant directement une fonction, pas de déclaration de type à faire.

"Imagine que je veuille faire cette effet (celui que je tes proposé), je devrais refaire un code preque similiare , ou adapter le tien"
Je propose un concept de base qui fonctionne, après ce que tu proposes ça commence à faire partie des cas particuliers. Je mets à disposition un code de base, ensuite c'est à chacun de le faire évoluer pour ses propres besoins. J'évite ainsi tout ce que je considère comme superflu.

"concernant le copié collé, tu n'a donné que la fonction sans exemple, de plus , la copie ici ajoute a chaque ligne des dièse qu il faut supprimer ensuite."

Non j'ai spécifié à deux reprises un lien d'exemple : http://vedlen.free.fr/fading-cs.html
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
1 sept. 2008 à 22:33
l'addresse de mon code est : http://www.javascriptfr.com/codes/DYNAMIQUE-JS-FAIRE-JOLIE-ANIMATION_47712.aspx

Ton code est le plus générique dans sa catégorie.
Bon on dois pas avoir la meme definition du mot.

Une class aurait été moins pratique a l'usage.
Et bien enplus de tes trois fonction qui aurait pu n'en faire qu une , il y a aussi 8 variables globales donc 8 mot reservé pour ton code, pour une page simple ca pause pas de probleme mais...
deplus a part l'usage du mot clé new devant la fonction je vois pas ce qui a de plus fastidieux dans l utilisation de class

Tros de gadget tue le gadget. Imagine que je veuille faire cette effet (celui que je tes proposé), je devrais refaire un code preque similiare , ou adapter le tien , et le rendre par la meme ocasion plus générique!!

setIntervel possède une fonction pour arrête l'exécution clearInterval().
De plus même si l'effet et le meme je pense avoir compris que tu rechercher d'abord l'efficacité, et ca t'économiserait un appel de fonction. En plus c'est fait pour ca.

concernant le copié collé, tu n'a donné que la fonction sans exemple, de plus , la copie ici ajoute a chaque ligne des dièse qu il faut supprimer ensuite.

bye
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
1 sept. 2008 à 22:08
"une source aurait été mieux quand meme."
un zip tu veux dire ? Inutile... Un simple copier/coller suffit.. Ou alors visualiser la source de la page d'exemples.

"Ce qui aurait été bien c'est que toute les lettres ne commence pas en même temps,en récupérant les nœuds texte de l'élément, remplacer les lettres par des spans le tout stocké dans un tableau que tu boucle ensuite."
Trop gadget à mon goût ; trop de gadget tue le gadget :)

"il aurait mieux value faire une class"
c'est sur quoi je m'étais orienté dès le début mais il se trouve que c'était au final moins pratique à utiliser

"Tu utilises setTimeout pour faire le calcule des transitions des couleurs , il existe une fonction plus approprié , setInterval qui appelle une fonction de manière répétée, avec un certain délai fixé entre chaque appel."
Effectivement, mais le timer n'est pas utilisé indéfiniment c'est pour cela que j'ai opté pour un setTimeout (qui opère au final exactement de la même façon de toutes manières).

"Ton script n'est pas assé générique"
je ne vois pas pourquoi tu dis ça, c'est justement le plus générique dans sa catégorie. Après il faut je pense à un moment faire la limite entre le côté sympa et le côté trop gadget.

"je t'invite a télécharger mon script"
je veux bien le voir, mais quelle est l'adresse ou l'ID du code ?
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
1 sept. 2008 à 21:57
salut j'ai essayé ton script, ca marche bien, une source aurait été mieux quand meme.
J'ai posté un script d'animation tu peux faire la même chose avec plein d'option. Ce qui aurait été bien c'est que toute les lettres ne commence pas en même temps,en récupérant les nœuds texte de l'élément, remplacer les lettres par des spans le tout stocké dans un tableau que tu boucle ensuite.
Concernant le code au lieux de déclarer des variables globale,il aurait mieux value faire une class surtout que tu poste en initié.
Tu utilises setTimeout pour faire le calcule des transitions des couleurs , il existe une fonction plus approprié , setInterval qui appelle une fonction de manière répétée, avec un certain délai fixé entre chaque appel.
Ton script n'est pas assé générique,je suis d'accord avec XtremDuke pour le rollover.
Tu as le mérite d'avoir posté et c'est deja cool de partagé ton travaille.
je t'invite a télécharger mon script BYE
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
1 sept. 2008 à 19:28
"- Tu as deux fonctions (Fading1() et Fading2()) qui sont pratiquement identiques. Je penses que tu peux aisément les fusionner."
C'est vrai j'aurai pu les fusionner, mais je manquais de temps :) ça fera l'objet d'une mise à jour

"- On doit spécifier le nombre d'étapes... Tu peux deviner le nombre d'étapes en fonction de la durée d'animation voulue et le framerate."
Oui c'est vrai que ça pourrait être un peu plus ergonomique, encore une fois je verrai pour une prochaine mise à jour

"- Tu aurais pu ajouter une fonction qui te récupère la couleur actuelle de l'objet ce qui t'aurait permis, en outre, de pouvoir faire des rollover avec ton effet sans que celà affiche des disfonctionnements."
Je n'ai pas prévu de pousser la fonction jusque là, le but premier n'étant pas exclusivement réservé aux liens et à leur rollover. Si certains veulent en faire usage de ce cas là, alors ils peuvent adapter la fonction que je propose à leurs besoins :)
A ce moment là j'aurai pu aussi intégrer les nodes pour une encore meilleure compatibilité. Mais j'ai essayé de faire à la fois efficace, et surtout sans superflu (pour des gains de performance ainsi que de lisibilité).

Merci de tes remarques en tous cas.
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
1 sept. 2008 à 18:15
Quelques remarques :

- Tu as deux fonctions (Fading1() et Fading2()) qui sont pratiquement identiques. Je penses que tu peux aisément les fusionner.
- On doit spécifier le nombre d'étapes... Tu peux deviner le nombre d'étapes en fonction de la durée d'animation voulue et le framerate.
- Tu aurais pu ajouter une fonction qui te récupère la couleur actuelle de l'objet ce qui t'aurait permis, en outre, de pouvoir faire des rollover avec ton effet sans que celà affiche des disfonctionnements.
Rejoignez-nous