MENU GLISSANT

lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009 - 19 mai 2008 à 10:20
davi-domo Messages postés 17 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 23 novembre 2014 - 13 nov. 2011 à 17:41
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/46701-menu-glissant

davi-domo Messages postés 17 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 23 novembre 2014
13 nov. 2011 à 17:41
bonjour,

je le trouve très bien se code
je m'en suis inspiré pour pouvoir développer ma domotique sur base arm
j'ai juste modifier afin que cela marche avec multi tableau

mng(div,num) num pour connaitre le numéro du div concerné
mngv[num] tableau des état des div
alienat Messages postés 4 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 23 septembre 2010
23 sept. 2010 à 07:04
Renommer vos images respectivement : aller allerp retour et retourp en 1 1p -1 et -1p et voici un code plus court :)

<html><head>
<script type="text/javascript">
var mngv=1;
function mng() {
var TAB=document.getElementById('mgauche');
TAB.style.left=TAB.offsetLeft+(4*mngv);
if((TAB.offsetLeft>0 && mngv==1) || (TAB.offsetLeft<=-152 && mngv==-1)) {
mngv=-mngv;
document.getElementById('fleche').src=magi[mngv];
return false;
}
setTimeout("mng()",1);
}
</script>
</head>
Lien 1, ,
----
div, ,
----
LIEN 2,
----
div

</html>
@karamel Messages postés 1859 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 17 juillet 2024 153
3 juin 2008 à 19:39
il y a quand meme une chose pour laquelle je suis d accord avec toi c'est le fait d'avoir des lacunes dans la construction d'une page web. et par contre pour la portabilite au niveau des anciens navigateur je pense qu'elle doit etre bonne a moins d'etre sous windows 95 ou meme 98 et de n'avoir pas changer la version de son navigateur et j'avoue que c'est possible l'ayant vecu moi meme mais tres tres rare. finalement mon script ne semble pas si vieux que sa (lol)
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
3 juin 2008 à 18:06
ça marche nikel sous un IE 6 en tout cas se qui est à mon avis représnte 90% des versions IE (hors IE7)
viking_force Messages postés 31 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 29 octobre 2008
3 juin 2008 à 17:16
y'a rien de pourri :)
tout est toujours bon a prendre...pardon si tu l'a mal pris, je te donnais juste les points négatifs considérant le "code optimisé" qui m'a fait hérisser les poils du dos....

Et c'est malheure"ux a dire, mais c'est encore la mise en page par tableau qui offre le moins de différences entre navigateur (si on oublie le coté accessibilité du code pour les multiples navigateurs)

Et pour le javascript c'est pareil, je suis pas sur qu'il fonctionne sur les vieux IE.....
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
2 juin 2008 à 09:15
Non c'est vrai il marche très bien et c'est déjà pas mal :)
@karamel Messages postés 1859 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 17 juillet 2024 153
30 mai 2008 à 17:34
a la demande general je vais retirer le mot optimise entre autre quand j'ai ecrit ce script j'ai plus pense a faire un script qui marche tres bien pour ca je pense que personne ne me contredira je l'ai mis dans un seul script pour que l'on ai rien a faire a par le placer dans une feuille et j' ai essayer je dit bien essayer car je n'essai pas d'avoir de pretentions donc j'ai essaye d'eviter de faire du script pour rien en essayant d'exploiter a font le javascript avec un peut de dom du css et bien evidement de l'html. du dhtml quoi. pour finir je ne suis pas graphiste si le tableau plait
pas on peut mettre un div a la place le script fonctionnera quand meme. pour moi l'interet c'est le script mais peut etre que lui aussi est pourri sais t'ont
viking_force Messages postés 31 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 29 octobre 2008
30 mai 2008 à 14:43
bonjour,

Je voudrais pas avoir l'air de critiquer, mais tu es loin d'un code optimisé...

Faire un menu avec une structure en tableau c'est pas top top

Aucune cohérance dans le document, déclaration des styles un peu n'importe où (séparation du contenu/du style)

un javascript non déclaré et qui m'a l'air aussi portable qu'il est vieux..

Ce script fonctionne peut être mais ça sent l'assemblage de bout de code et cela montre les lacunes dans la construction d'une page web....
@karamel Messages postés 1859 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 17 juillet 2024 153
20 mai 2008 à 12:03
il me plait le script lol
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
19 mai 2008 à 14:49
Ok donc tu veux optimiser à fond :) dans ce cas même pas la peine de mettre "var" et tes variables renomme les avec des lettre toute simple au lieu de nom explicite en gros obfusque ton code ça donne ça en version "moche" :
F=0
A='aller.jpg'
B='allerp.jpg'
function F(){
T=document.getElementById('mgauche')
G=document.getElementById('fleche')
if(F==1){
T.style.left=T.offsetLeft-10
if(T.offsetLeft<=-150){
F=0
A='aller.jpg'
B='allerp.jpg'
G.src='aller.jpg'
return false
}
setTimeout("F()",16)
}
if(F==0){
T.style.left=T.offsetLeft+10
if(T.offsetLeft>=0){
F=1
A='retour.jpg'
B='retourp.jpg'
G.src='retour.jpg'
return false
}
setTimeout("F()",16)
}}

Grâce à cela tu gagne 169 octets sur ta page!!! Soit avec un 56k 0,003 seconde environ pour le téléchargement de la page!! Car évidement le traitement reste quand à lui aussi long!!
Tout ça pour dire que le jeux n'en vaut pas la chandelle il me semble mais c'est ton choix (si s'en est vraiment un et pas une flemingite aiguë).
Peut être pour du mobile ou chaque octet compte ? Le JS sur mobile commence juste à devenir inintéressante.
@karamel Messages postés 1859 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 17 juillet 2024 153
19 mai 2008 à 14:25
c'est fait j'ai ajouter la variable Table_Gauche=document.getElementById('mgauche') j'y avait pensé mai je n'y avait pas trouvé d'interet.tu m'en a donné un merci.
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
19 mai 2008 à 12:21
Ok en fait je te demandais ça car je trouvais le code pas très lisible et pas top (même si il marche nikel pour ton exemple). Mais je pense que si il a pour but d'être réutiliser je te propose 2 3 modifs:
- "document.getElementById('mgauche')" tu l'utilise pas mal de fois je te propose de faire un petit var Table_Gauche=document.getElementById('mgauche'); et d'utiliser cette variable par la suite, c'est plus lisible ça prend moins de place et le jour ou tu veux changer l'id de cette table (ça arrivera souvent si on veut reprendre ton code avec un code existant) on ne change l'id que pour la déclaration de la variable.
- la 2 ème modif "desoptimise" le code mais le gain en maintenabilité est conséquent je trouve, le but est de remplacer ton code en dure par des constante.
Par exemple tes images 'aller.jpg' deviendraient var ImgAller='aller.jpg'; Toute ces constante étant défini en haut de ton script.
Si bien que, encore une fois, si on réutilise ton code et que veux nos config (image class...) on a qu'à les changer dans les constante sans s'occuper du code et de parser le code à la recherche des image ou/et class que l'on veut changer.

Voilà :) juste des remarques constructives.
PS: oublie pas les ";" à la fin des instruction c'est pas obligatoire me dira tu mais bon c'est quand même plus mieux :)
@karamel Messages postés 1859 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 17 juillet 2024 153
19 mai 2008 à 12:05
optimiser pou moi cela veut dire éviter le code inutile afin d'obtenir un minimum de code et aussi minimiser le nombre de fonction pour ce menu je n'ai créer qu'une fonction. entre autre je ne dit pas que ce code est le plus optimiser je dirait plutot que quand je créer j'essaie de penser de cette façon.
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
19 mai 2008 à 10:20
Salut le menu marche nikel, par contre qu'entends tu par "optimisation du code"?
Rejoignez-nous