Problème de compatibilité entre Shadowbox et Motion Gallery

Résolu
da vince Messages postés 29 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 17 janvier 2012 - 30 mai 2010 à 01:00
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 7 juin 2010 à 18:32
Bonjour,
J'ai depuis quelques années un Portfolio en ligne avec mes dessins et également quelques (humbles) sites que j'ai fait pour des amis ou des connaissances.
Tout se trouve là:
http://www.vhenin.be/fr/galerie_webdesign_01.html
Sur la droite des vignettes menant vers les différents sites que j'ai réalisés.(motiongallery.js)
Etant donné que, à part le premier, ils ne sont plus mises à jour par mes soins, je voulais remplacer les liens vers les projets finaux par des captures d'écran s'affichant grâce à Shadowbox que j'utilise partout dans mon Portfolio Online.
Voir essai ici: http://www.vhenin.be/fr/galerie_webdesign_01_forum.html
Mais voilà du coup, le bandeau des vignettes ne défile plus...

J'ai découvert que cela venait de là dans mon <HEAD>:
<script type="text/javascript">

Shadowbox.loadSkin('classic', '../shadowbox/src/skin');
Shadowbox.loadLanguage('fr', '../shadowbox/src/lang');
Shadowbox.loadPlayer(['flv', 'html', 'iframe', 'img', 'qt', 'swf', 'wmp'], '../shadowbox/src/player');

window.onload = function(){

    Shadowbox.init();
};
</script>

car quand j'enlève ça, ça défile mais Shadowbox ne marche plus
Y-a t'il moyen de faire fonctionner les deux en même temps (Motiongallery et Shadowbox)?
Merci de votre aide!!!



Davince
Principalement XHTML, CSS

7 réponses

da vince Messages postés 29 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 17 janvier 2012
30 mai 2010 à 13:46
Je vais essayer et te dis quoi.
Merci en tous cas pour cette réponse si rapide.

Bien à toi,

Davince
Principalement XHTML, CSS.
3
da vince Messages postés 29 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 17 janvier 2012
30 mai 2010 à 17:31
Un tout grand merci, Petole Team.
Effectivemment, ça marche!!!

J'ai laissé cela comme ça dans mon <HEAD>:
<script type= "text/javascript">

Shadowbox.loadSkin('classic', '../shadowbox/src/skin');
Shadowbox.loadLanguage('fr', '../shadowbox/src/lang');
Shadowbox.loadPlayer(['flv', 'html', 'iframe', 'img', 'qt', 'swf', 'wmp'], '../shadowbox/src/player');

window.onload = function(){

    Shadowbox.init();
};
</script>


mais ai changé ça à la fin de mon motiongallery.js
(...)if (window.opera){
cross_scroll.style.top =menu_height-actualheight+'px'
setTimeout('cross_scroll.style.top=0', 10)
}
loadedyes=1
if (endofgallerymsg!=""){
creatediv()
positiondiv()
}
}
window.onload=fillup


en ça:
if (window.opera){
cross_scroll.style.top=menu_height-actualheight+'px'
setTimeout('cross_scroll.style.top=0', 10)
}
loadedyes=1
if (endofgallerymsg!=""){
creatediv()
positiondiv()
}
}
window.addEventListener=fillup


et comme tu l'avais dit, ça marche!!!
Encore merci.
En espérant que ça puisse aider d'autres.
Davince
Principalement XHTML, CSS.
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
30 mai 2010 à 07:48
Bonjour,
il y a lourd à parier qu'il y a également un window.onload ailleurs dans tes codes, qui annule l'action du second...
Le plus simple et le plus efficace et de passer par un window.addEventListener ou window.attachEvent suivant le cas.

;O)
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
31 mai 2010 à 18:31
Bonjour,
pour le coup tu es restrictif, cela ne fonctionnera pas sur IExplorer
je voyais plus un truc du style
if( window.addEventListener) // si W3C supporte
  window.addEventListener( 'load', fillup, false);
else // pour IE
  window.attachEvent( 'onload', fillup);
}


OUPS ! en relisant ton post, est tu sur que cela fonctionne car window.addEventListener = fillup n'est pas la bonne syntaxe.
;O)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
da vince Messages postés 29 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 17 janvier 2012
7 juin 2010 à 00:31
Salut Petole Team,

Merci pour ta remarque,
Tout fonctionne sous IE, Mozilla Firefox, Safari et Opera.
La seule chose est que:
<script type="text/javascript">

Shadowbox.loadSkin('classic', '../shadowbox/src/skin');
Shadowbox.loadLanguage('fr', '../shadowbox/src/lang');
Shadowbox.loadPlayer(['flv', 'html', 'iframe', 'img', 'qt', 'swf', 'wmp'], '../shadowbox/src/player');

window.onload = function(){

    Shadowbox.init();
};
</script>

doit être présent, même sur les pages sans Shadowbox, pour faire fonctionner la MotionGallery (???). Je ne sais pas vraiment pourquoi mais bon, ça marche à tous les coups dans tous les navigateurs. Donc, je laisse ça comme ça ;-)

Où proposes-tu de mettre le code que tu as montré au post précédent?
Si j'écris
window.addEventListener fillup
(-->
window.addEventListener (fillup);
par exemple) différement, ça marche plus...

Bien à toi,
Davince
Principalement XHTML, CSS
0
da vince Messages postés 29 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 17 janvier 2012
7 juin 2010 à 00:33
OUps je voulais dire
window.addEventListener(fillup);


Davince
Principalement XHTML, CSS
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
7 juin 2010 à 18:32
Bonjour,
window.addEventListener, n'est pas reconnu par IE, donc tu dois avoir un message d'erreur quelque part sous IExplorer

window.addEventListener = fillup
signifie que tu réaffectes à la méthode addEventListener la function fillup, ce qui n'est pas forcément gênant si tu ne l'utilises pas par la suite...

window.addEventListener( fillup)
signifie que tu passes une fonction en premier argument ce qui est incorrect, voir la documentation W3C addEventListener, ou encore peu être plus simple à lire et à comprendre mozilla addEventListener

C'est dans les fichiers js ou tu ajoutes une fonction sur le load de ta page que l'on devrait trouver ce code...

;O)
0
Rejoignez-nous