Effet de fondu entre éléments

Voici un petit bout de code permettant un fondu simultané (apparait/disparait) entre deux éléments html (div, img, a etc.).
Testé et fonctionnel sous ie6+, FF2 et Opera 9.
Démo sur la page d’accueil de Challenge&Co UK
Code JS :
- lastShow=1;
- function switchTxt(nbElementEvent)
- {
- Element.addClassName($('txtSuite'+nbElementEvent),'positionElementDesc');
- new Effect.Fade($('txtSuite'+lastShow),{
- duration: 0.3,
- from:1.0,
- to:0.0,
- afterFinish:function()
- {
- Element.removeClassName($('txtSuite'+nbElementEvent),'positionElementDesc');
- }
- });
- new Effect.Appear($('txtSuite'+nbElementEvent),{
- duration: 0.3,
- from:0.0,
- to:1.0
- });
- lastShow=nbElementEvent;
- }
Dans mon cas, j’avais x éléments (div) contenant du contenu html, un seul est affiché à la fois ; le premier (index 1) étant affiché au chargement de la page. Le but étant de pouvoir switcher entre les éléments avec un effet de fondu à la manière d’un diaporama d’images...
On attribu la classe css positionElementDesc de manière à pouvoir superposer le nouvel élément sur l’ancien déjà affiché.
Code CSS de la classe positionElementDesc :
- .positionElementDesc {
- position:absolute;
- left:0;
- top:0;
- }
La variable lastShow indique le dernier élément ayant été affiché (on n’affiche qu’un seul élément à la fois).
On appel la fonction switchTxt(nbElementEvent) , nbElementEvent représente l’index de l’élément à afficher.
Code html :
Le code n’est pas forcément optimisé, mais peut servir de base pour bien d’autres utilisations.


Commentaires