Récupérer les tag "Title" et "Alt" sur un diaporama d'images - Javascript/Node.js - Programmation
Marsh Posté le 05-04-2017 à 09:23:15
Bonjour,
Alt est une balise sémantique qui permet d'afficher un contenu lorsque ton image n'est pas lu par le navigateur. Pourquoi veux-tu l'afficher comme un second champs au lieu de tout mettre dans "title" ?
Concernant ton problème, les fonctions que tu nous montres indiquent simplement comme le script récupère le titre de l'image. Mais il n'explique pas comment il l'utilise.
En effet, récupérer l'information est relativement simple. Il suffit de rajouter trois lignes dans la première fonction que tu nous a donné.
Mais la bonne question serait, comment afficher l'attribut une fois récupéré.
Malheureusement, je n'ai pas assez d'information sur le script pour t'aider. Tu peux nous fournir son nom ?
L'autre solution serait de le faire à la main ...
Tor
Marsh Posté le 05-04-2017 à 10:10:25
Pour moi cette ligne:
Code :
|
mets le même contenu dans le 'title' et le 'alt'.
Du coup pourquoi vouloir afficher les deux, vu que c'est la même chose?
Marsh Posté le 05-04-2017 à 12:07:40
torwood3 a écrit : Bonjour, |
Merci de vos réponses à tous les deux.
Ce serait donc pour afficher la donnée "Alt" sur l'image, mais en dessous de la donnée "Title", et avec une police de caractères plus petite / ou autre css.
Le script original est ici (j'ai juste rajouté un timer pour en faire un diaporama -en gardant les vignettes) et modifié la présentation (et les photos bien sûr).
Le source est librement modifiable par son créateur.
http://manos.malihu.gr/tuts/malihu [...] llery.html
h3bus a écrit : Pour moi cette ligne:
|
Oui cette ligne me semble prendre le contenu des 2 champs (ou de l'un et/ou de l'autre) ?
Mais le script n'affiche cependant que le contenu de la balise "Title" ... ?!
Mais le but pour moi, c'est d'afficher ces 2 balises avec des données différenciées et pas au même endroit ni même présentation... (voir plus haut)
Marsh Posté le 05-04-2017 à 13:46:09
Ok, rien de bien compliqué.
Il te faut rajouter un attribut à tes images car alt a déjà une utilité (Tu vas pas utiliser ta voiture pour cuir un oeuf :!)
Donc rajoute un attribut sur les images comme "subtitle", tu met un élément dans le dom pour l'afficher. Et ensuite tu connectes le tout au niveau du JS.
Dans la partie HTML, tu remplaces
Code :
|
Rajoutons un attribut subtitle
Code :
|
Concernant le JS :
Code :
|
Ensuite
Code :
|
Voila, je te laisse mettre ça au bonne endroit, de faire le style qui te plait et revenir vers moi si ca fonctionne pas (je dirais 50/50).
Je tiens quand même a dire que le code qui est proposé par cette personne est affreux (en restant courtois).
Tor
Edit : Mise en forme
Marsh Posté le 05-04-2017 à 13:49:57
Wouah ! Merci "torwood3"
Je fais la modif dans la journée et je te dis !
C'est super sympa, et ça me permet de comprendre un peu mieux ce code et d'avancer petit à petit
GRAND MERCI !
Marsh Posté le 05-04-2017 à 14:07:31
Comme indiqué, l'attribut alt est utilisé pour afficher un msg quand le navigateur ne peut afficher l'image. Si une description doit être mise sur une image, c'est dans l'attribut "title" si cette description est relativement courte, dans l'attribut "longdesc" si la description est longue (mais dans ce cas, longdesc contient en fait une url vers une page contenant une longue description de l'image).
Donc d'un point de vue sémantique, tu ne devrais pas mélanger le contenu de ces 2 attributs car ils n'ont pas du tout le même but. A noter que IE avait la fâcheuse tendance à inverser le rôle de ces 2 attributs, ce qui a contribuer à ajouter un peu plus de confusion chez certains
Marsh Posté le 05-04-2017 à 15:50:39
Bon zut, ça ne fonctionne pas
La zone "subtitle" s'affiche bien là ou je veux, mais ne change pas et reste sur le premier subtitle donné à la première image ...
J'ai bien essayé de suivre le code, modifié quelques trucs, mais nada
je me demandais s'il n'y avait pas un petit soucis ici
Code :
|
j'ai essayé ça, qui me paraissait plus "logique" mais ça ne change rien ...
Code :
|
J'ai aussi aussi tenté de mettre cette ligne en plus, mais sans succès ...
Code :
|
Marsh Posté le 05-04-2017 à 16:04:23
Il ne doit pas manquer grand chose pour que ça fonctionne parfaitement, mais je ne trouve pas
Marsh Posté le 05-04-2017 à 16:18:40
@Rufo Merci de l'info , mais du coup dans le cas suivant, quelle serait la meilleure approche :
- on rajoute un attribut data-* ?
- on utilise longdesc + title ?
Bien vu pour le code, j'ai répondu (trop) rapidement.
Pour le soucis, il faut que tu regardes quelles sont les informations contenu dans le "$this" de la fonction "BackgroundLoad"
Pour cela je te propose de rajouter des console.log.
=> F12 pour afficher la console dans un navigateur https://www.alsacreations.com/astuc [...] cript.html
Donc rajoute ceci à la fin de la fonction BackgroundLoad (juste après le if(imageTitle) {}else{} :
Code :
|
Tu fais défiler seulement 2 photos puis tu nous copies colle le résultat de la console ici ok ?
Juste tu as bien rajouté juste après le if else de la fonction BackgroundLoad ceci ?
Code :
|
Tor
Marsh Posté le 05-04-2017 à 16:28:46
Alors ça me donne ça
Code :
|
Marsh Posté le 05-04-2017 à 16:44:24
Ouai, pas trop utile.
Ok je pense avoir trouvé
Code :
|
Marsh Posté le 05-04-2017 à 16:48:44
ça me donne cela :
j'ai juste fait une copie de l'index2.html > vers index3.html pour rajouter ton code console (au même endroit)
Code :
|
Marsh Posté le 05-04-2017 à 16:50:16
J'ai édité ma réponse précédente
Marsh Posté le 05-04-2017 à 17:08:03
J'ai vite re-récupéré l'attribut "alt" pour ne pas devoir tout renommer avec "subtitle", je verrais par la suite en reprenant "subtitle" mais ça marche déjà très bien pour tester.
Pour le code, je n'arrive pas à juger de sa qualité, mais cette galerie fonctionne de façon fluide partout, et ça me va donc ...
Elle reprend le look d'une ancienne galerie en flash que j'utilisais précédemment mais donc sans les soucis de compatibilité de flash
Voici le résultat, je ne suis qu'un petit photographe amateur passionné de Jazz ...
https://tinyurl.com/luws25p
La donnée "Alt" (je mettrais à jour vers "subtitle" pour suivre et respecter les conseils) me permet donc d'afficher le lieu de la prise de vue
Le "Title" au-dessus affiche le nom du musicien
et en modifiant un fast par un slow, ça peut même s'afficher en 2 temps, je fignolerai encore
Marsh Posté le 05-04-2017 à 17:22:27
Je vais bien regarder ce nouveau code, et ça m'aide à avancer !
Et je ne sais pas de quel coin tu es "torwood3" ?, mais je t'offre volontiers un verre ou autre à l'occasion.
Un grand merci en attendant (et aussi à tous les participants)
Marsh Posté le 06-04-2017 à 10:59:46
torwood3 a écrit : @Rufo Merci de l'info , mais du coup dans le cas suivant, quelle serait la meilleure approche : |
A mon sens, plutôt utiliser "title" + un attribut data-* pour l'aspect sémantique, d'autant que, comme indiqué, l'attribut longdesc attend une url d'une page web expliquant en détail le contenu de l'image, ce qui n'est pas, a priori, le but recherché ici.
Marsh Posté le 04-04-2017 à 18:13:25
Bonjour,
J'utilise un script pour une galerie photo (diaporama avec un effet de fondu au noir)
Ce code m'affiche le tag "title" de chaque image en superposition de chaque image, mais j'aimerais aussi pouvoir récupérer le tag "alt" de ces images pour afficher aussi son contenu en complément.
La suite des images est listée comme ceci : (avec autant de lignes que d'images)
Voici les 2 parties de code qui me semble récupérer le tag "title" et l'afficher :
Je n'arrive pas à créer / compléter la fonction me permettant ce complément d'affichage de ce tag "alt" en plus de "title"
que faire, je débute et je n'y arrive pas ?
Merci d'avance pour toutes pistes et aides
Message édité par dann le 04-04-2017 à 18:35:08