21 December 2006
sIFR, YouTube et Lightbox, ThickBox, etc.
sIFR c’est la classe.
LightBox, c’est la classe.
Des post contenant une video YouTube, c’est encore la classe.
Seulement voila, quand les vidéos sIFR, YouTube et LightBox sont sur la même page (ça fait “chargé” vous me direz), c’est plus la classe du tout du tout : les vidéos et sIFR - des objets Flash - sont affichés au dessus de votre jolie LightBox … dommage.
Ma solution, qui n’est peut être pas la meilleure :
1ère étape
Faire 2 petites fonctions JavaScript comme celles ci
- pour sIFR :
Code (javascript)
-
-
var sIFR_switch = function( activate ) {
-
if (typeof sIFR == "function"){
-
sIFR.rollback();
-
if (activate) {
-
// Si activate = true, on remet les sIFR
-
sIFR.replaceElement( vos_replaceElement_a_vous );
-
}
-
};
-
-
- pour les autres élément :
Code (javascript)
-
-
var toggle_objects = function(show, elements) {
-
if (elements) {
-
for (i = 0; i < elements.lenght; i++) { elements[i].style.display = show ? ” : ‘none’ ; }
-
}
-
};
-
-
-
-
// Mes liens lightbox sont des <a> avec un attibut ‘ rel ‘ contenant ‘ lightbox ‘, donc ….
-
‘a’ : function(el) {
-
if (el.hasAttribute(‘rel’) && el.getAttribute(‘rel’).match(‘lightbox’)){
-
Event.observe(el, ‘click’, function(e) {
-
sIFR_switch(false);
-
// Ici, mettre un tableau des objets à cacher ; pour moi,
-
// ce sont tous éléments possédant la classe ‘ isFlash ‘
-
var objets_a_cacher = document.getElementsByClassName(‘isFlash’)
-
toggle_objects();
-
}, false);
-
}
-
}
-
2ème étape
Il faut assigner ces fonctions aux liens de type LightBox / ThickBox / etc.
Bon, ce coup ci je met directement le code pour Behaviour / Prototype parce que bon c’est long le code générique.