Je suis à la recherche d'une solution afin d'adapter le code d'une lightbox "FancyZoom".
J'ai besoin de légender sur plusieurs lignes les images ouvertes.
Actuellement la légende est captée par le script dans l'attribut title de chaque vignette. Je peux bien entendu déposer une longue chaine de caractères dans l'attribut, mais je ne suis plus validé par le W3C. À la lecture de cet article sur lamanipulation du DOM, il me semble que ça doit être relativement simple... pour qui sait comment s'y prendre !
Voici un lien vers mon exemple.
Comme je l'écrivais le W3C ne valide pas les retours à la ligne et les espaces forcés dans une balise <a></a>
exemple du code html :
- Code: Tout sélectionner
<a class="thumbnail" title="
Titre de l'image<br/>
- Remarque 1<br/>
- Remarque 2<br/>
- Remarque 3<br/>
Conclusion"
href="images/FancyZoom/Neufs/img1.JPG"><img src="images/FancyZoom/Neufs/thumbnail/img1thum.jpg" alt="exemple 1"/></a>
Mon script lightbox (FancyZoom) fait appel à 2 fichiers : FancyZoom.js et FancyZoomHTML.js
Voici le fragment de code de FancyZoom.js (ligne 239)qui fait le lien entre l'attribut title dans le html et son exploitation par FancyZoomHTML.js :
- Code: Tout sélectionner
if (includeCaption) {
document.getElementById(zoomCaptionDiv).style.visibility = "hidden";
if (from.getAttribute('title') && includeCaption) {
document.getElementById(zoomCaption).innerHTML = from.getAttribute('title');
} else {
document.getElementById(zoomCaption).innerHTML = "";
}
}
et Voici l'autre fragment de code qui nous intéresse issus de FancyZoomHTML.js à partir de la ligne 297 :
- Code: Tout sélectionner
var inCapCol2 = document.createElement("td");
inCapCol2.setAttribute('background', zoomImagesURI+'zoom-caption-fill.png');
inCapCol2.setAttribute('id', 'ZoomCaption');
inCapCol2.setAttribute('valign', 'middle');
inCapCol2.setAttribute('height', '110'); //BL
inCapCol2.setAttribute('width', '370'); //BL
inCapCol2.style.fontSize = '13px';
inCapCol2.style.fontFamily = 'Helvetica';
inCapCol2.style.fontWeight = 'bold';
inCapCol2.style.color = '#ffffff';
inCapCol2.style.textShadow = '0px 2px 4px #000000';
inCapCol2.style.whiteSpace = 'nowrap';
inCapRow1.appendChild(inCapCol2);
Je suppose qu'il doit être possible en ajoutant un identifiant à chaque vignette de compléter l'attribut title=""
- Code: Tout sélectionner
// Modification de l'attribut href de notre lien
$('#nomVignette').attr('title', 'la longue légende que je veux faire paraitre tout en restant validé par le W3C');
Est ce que quelqu'un a une solution à me proposer ?
Merci de votre attention !!