salut,
je crée un site pour un ami, je me suis pris au jeu et je commence à essayer d'utiliser javascript et ajax.
la présentation utilise pas mal de couleurs différentes mais de même ton pour chaque pages. j'ai voulu que la transition entre chaque page soit progressive au niveau du changement de couleur.
pour illustrer le principe, voila le site: julian-hamm.fr
il n'est pas tout a fait fonctionnel pour l'instant.
le fondu fonctionne avec tout les onglets sauf "concert" et "contact", en effet la boite sensé changer de couleur clignote et met une mauvaise couleur en fond.
voila le script pour le fondu:
le code est une légère adaptation de celui trouvé ici
les couleurs pour chaque onglet:
mon hypothèse est qu'il y-a une sorte de problème de calcul quelque part lié au code rgb de "contact" et "concert" et qui fait planter le code. mais bon c'est une hypothèse un peu foireuse.
donc, première chose, rencontrez vous vous aussi ce problème en naviguant sur le site?(il faut parfois insister un peu pour qu'il apparaisse.)
deuxièmement... avez vous une solution?
merci d'avoir lu en tout les cas, bye.
j'ai rajouté un alert a la fin du fondu, il aparait lorsque je clique sur tout les onglets, sauf concert... qui est pourtant traité de la même maniere que les autres.
Modifié par e-rwan (31 Jul 2010 - 11:36)
je crée un site pour un ami, je me suis pris au jeu et je commence à essayer d'utiliser javascript et ajax.
la présentation utilise pas mal de couleurs différentes mais de même ton pour chaque pages. j'ai voulu que la transition entre chaque page soit progressive au niveau du changement de couleur.
pour illustrer le principe, voila le site: julian-hamm.fr
il n'est pas tout a fait fonctionnel pour l'instant.
le fondu fonctionne avec tout les onglets sauf "concert" et "contact", en effet la boite sensé changer de couleur clignote et met une mauvaise couleur en fond.
voila le script pour le fondu:
function fadeColors(id,startColor,stopColor,nbTrans,delay) {
var elm = document.getElementById(id) || document.getElementById("main_ext" ); // l element qui doit etre dégradé
var delay = delay || 40; // en millisecondes c ets le temps qui passe entre chaque execution. a diminuer si la fluidité n est pas au rendez vous
var nbTrans = nbTrans || 7; // le nombre de transitions...a augmenter si ce n ets pas assez fluide
var startColor = startColor || [255,255,255]; // remplacer par les chiffres qui vont bien
var stopColor = stopColor || [0,0,0]; // pareil
// maintenant il faut calculer le delta de chaque couleur
//la deuxieme valeur du tableau calcule lequel du deltat d'arrivé ou de départ est le plus grand et plus petit et stocke une valeur true ou false
var rDelta = new Array (Math.floor((stopColor[0]-startColor[0])/nbTrans), stopColor[0]<startColor[0]);
var gDelta = new Array (Math.floor((stopColor[1]-startColor[1])/nbTrans), stopColor[1]<startColor[1]);
var bDelta = new Array (Math.floor((stopColor[2]-startColor[2])/nbTrans), stopColor[2]<startColor[2]);
// on cree les variables ou vont etre stockees les couleurs temporaires
var rTemp = startColor[0];
var gTemp = startColor[1];
var bTemp = startColor[2];
// un petit setInterval pour que la fonction se repete d elle meme
var interval = setInterval(function() {
if(rDelta[1])
{if(rTemp > stopColor[0])rTemp += rDelta[0]; else rTemp = stopColor[0];}
else
{if(rTemp < stopColor[0])rTemp += rDelta[0]; else rTemp = stopColor[0];}
if(gDelta[1])
{if(gTemp > stopColor[1])gTemp += gDelta[0]; else gTemp = stopColor[1];}
else
{if(gTemp < stopColor[1])gTemp += gDelta[0]; else gTemp = stopColor[1];}
if(bDelta[1])
{if(bTemp > stopColor[2])bTemp += bDelta[0]; else bTemp = stopColor[2];}
else
{if(bTemp < stopColor[2])bTemp += bDelta[0]; else bTemp = stopColor[2];}
if (rTemp == stopColor[0] && gTemp == stopColor[1] && bTemp == stopColor[2]) {
clearInterval(interval);
elm.style.backgroundColor = "rgb("+stopColor[0]+","+stopColor[1]+","+stopColor[2]+" )";
}
else{elm.style.backgroundColor = "rgb("+rTemp+","+gTemp+","+bTemp+" )";}
},delay);
}
le code est une légère adaptation de celui trouvé ici
les couleurs pour chaque onglet:
case "news": var startColor = [176,23,23]; break;
case "concert": var startColor = [78,26,26]; break;
case "musique": var startColor = [71,71,71]; break;
case "photos": var startColor = [155,155,155]; break;
case "videos": var startColor = [123,39,39]; break;
case "contact": var startColor = [51,51,51]; break;
case "pro": var startColor = [171,171,171]; break;
default: var startColor = [0,0,0]; break;
mon hypothèse est qu'il y-a une sorte de problème de calcul quelque part lié au code rgb de "contact" et "concert" et qui fait planter le code. mais bon c'est une hypothèse un peu foireuse.
donc, première chose, rencontrez vous vous aussi ce problème en naviguant sur le site?(il faut parfois insister un peu pour qu'il apparaisse.)
deuxièmement... avez vous une solution?
merci d'avoir lu en tout les cas, bye.

Modifié par e-rwan (31 Jul 2010 - 11:36)