Bonjour,
j'aimerai que lorsque je passe la souri sur une image, le texte qui est dessus disparaisse, le problème c'est que je n'arrive pas à sélectionner uniquement le texte contenu sur l'image survolé, ce sont tous les texte de toutes les images qui disparaissent.
{% for s in scolaire %}
<div class="listProjets">
<a id="aBleu" class="nav nav-link mx-auto" href="#">
<p class="desc">{{ s.support_name }}</p>
<img id="imageAlaUne" src="{{DOCUMENT_ROOT}}/css/tmp/la_une/{{s.image}}" />
</a>
</div>
{% endfor %}
$('.listProjets').hover(function () {
$('.desc').css({'opacity': 0})
})
$('.listProjets').mouseleave(function () {
$('.desc').css({'opacity': 1})
})
J'ai essayé en mettant un id, ça retire toujours le texte de la première image donc ce n'est pas bon,
j'ai également essayé cette syntaxe : ('.listProjets > .desc') mais ça ne fonctionne pas, ni avec + ou ~
et j'ai essayé d'utiliser this mais sans succés...
Salut Alex,
Un peu de révisions sur les sélecteurs CSS ne te feraient pas de mal je pense !
A savoir (ou pour rappel) un id
doit être unique. Vu que tu es dans une boucle ({% for s in scolaire %}
), tu vas créer plusieurs fois le lien id="aBleu". (Il faut donc enlever l'ID, ou générer un ID unique).
Plusieurs solutions :
J'opterai pour la seconde solution, comme suit :
//Au hover sur le a dans .listProjets
$('.listProjets > a').hover(function () {
//On va chercher le p.desc DANS le a qui est :hover
$(this).find('p.desc').css({'opacity': 0});
})
Merci beaucoup pour ces explications et pour la decouverte de find(), je l'ai vu nul part dans mes recherches sur les selecteurs...
Par contre ".desc" suffit pour que ça fonctionne, est ce qu'il y a une raison de mettre le "p" devant ou c'est une manière de faire ?
Hello,
N'hésites pas à passer ton sujet en résolu en sélectionnant la réponse qui t'a aidé ;)
C'est une préférence de ma part de mettre p.desc
au lieu de .desc
. Les 2 vont fonctionner mais c'est une question de préférence.