Bonjour à tous, j'ai un problème que je n'arrive pas à résoudre avec l'utilisation de la formidable zoombox. Lorsque j'appelle un $.zoombox.open(linkVersVideoVimeo,options) après avoir lu une galerie d'images, il reste les flèches avant/après en overlay sur la fenêtre ZB et je peux naviguer dans la galerie lue précédemment (qui est pourtant fermée et j'imagine détruite). Quelqu'un aurait une idée d'où peut provenir l'erreur? Pour information, je n'appelle pas la lecture de la galerie en direct. Je clique sur une vignette unique qui charge en JS une div cachée avec les bonnes image et la ZB se lance ensuite. Ex du code: // Génération d'un numéro de galerie aléatoire numGal= Math.floor(Math.random() * 50)+1; // Construction de la chaîne des lien vers les images for(i=0;i<filename.length gal class='\"zoom' zgallery href="%5C%22%22+filename*+%22%5C%22">";
}

// Remplissage d'une div (#diapoContent) invisible
$('#diapoContent').append(gal);

// Association de la zoombox aux éléments de class zoom
$('a.zoom').zoombox(options);

// Déclenchement de l'ouverture de la zoombox par un click virtuel sur le premier lien
$('a.zoom').eq(0).click();

Donc pour résumer, après l'exécution de ce code, si je ferme et que j'ouvre ensuite une vidéo, la galerie reste présente.
Voilà merci beaucoup,

Ken.</filename.length>

5 réponses


kenmaclord
Auteur
Réponse acceptée

Désolé pour les auto-réponses...

donc, il suffit dans le css de jouer avec les overflow sur la class "content", de mettre les width et height à 100% et on a une jolie boite pour afficher une page HTML en entier.

@Grafikart: dis-moi si tu veux voir les fichiers pour intégrer les <iframe> à la place des <object> pour les vidéos Viméo.

Pour illustrer mon propos voici le comportement en screencast:

http://vimeo.com/25358199

Mmmh je vais tester chez moi mais effectivement la gallery reste peut être en mémoire je vais mettre à jour ça.

Merci pour ta réponse. Un phénomène similaire arrive si je génère à la volée (avec le code au-dessus) une première galerie, que je ferme ZB (à la main, pas en code) et que j'en génère une nouvelle avec de nouvelles images, mais avec le même numéro de galerie (ex: zgallery1) les images de la première galerie restent visibles.
J'ai contourné le problème en générant un numéro de galerie aléatoire à chaque chargement (solution pas vraiment idéale puisqu'il reste un petit risque que le numéro généré soit le même qu'un précédemment généré).

Tout ça en tête, je penche pour ta solution, c'est à dire que la galerie reste en mémoire quelque part. J'avais un peu modifié ta fonction close() en vidant ma div qui contient mes images ($('.zoom').remove(); $('#diapoContent').empty();) mais cela n'a rien changé.

Concernant les vidéos Viméo, j'ai modifié la partie <object> pour la remplacer par une <iframe> qui est compatible avec iPad (HTML5)[nouvelles spec. Viméo], mais je ne sais pas comment te soumettre le code.

Voilà, encore merci pour tout ton travail.

Alors, après investigations je me suis aperçu que le problème n'intervenait que sur le thème zooombox. J'ai donc regardé le css en détail, et en effet, il faut rajouter cette ligne dans le thème zoombox:
.zoombox .multimedia .next, .zoombox .multimedia .prev{ display:none;}

Sinon les flèches restent en overlay.

Ce serait trop simple si tout était réglé :-) J'ai un problème sur une modale qui affiche un fichier HTML chargé en ajax ($.get). Le fichier est assez long et la boîte n'a pas d'overflow avec les ascenseurs. le texte déborde. Je pose la question, mais je vais aller voir si on peut modifier le css ou ailleurs pour afficher de longs textes dans une bpîte de taille fixée.