Bonjour,
Je débute en Jquery. Actuellement, je suis en train de coder une page dont le principe est d'avoir une image de fond sur laquelle des légendes sont cliquables.
Lorsqu’on clique sur une légende, le détail apparaît dans une petite fenêtre.
Lorsqu’on clique sur cette fenêtre, elle disparaît.
Pour ce faire, en Jquery, j'ai créé 2 variables : 1 pour la légende et une pour les détails. Ensuite, je leur affecte la fonction Toggle().
J'ai utilisé des identifiants pour la précision et la rapidité.
Tout fonctionne bien pour le premier bloc de la page, mais rien ne se passe pour les suivants. Je ne comprends pas trop pourquoi. J'ai dû faire une erreur et je ne vois pas laquelle (vu que je débute et que je n'ai pas encore tout bien assimilé).
Si quelqu'un a une idée, je suis preneuse.
Ci-dessous mon code.
Merci d'avance.
Code HTML
Dans le head :
Dans le body :
Le code CSS des éléments concernés :
Modifié par codewriter (21 Sep 2017 - 14:58)
Je débute en Jquery. Actuellement, je suis en train de coder une page dont le principe est d'avoir une image de fond sur laquelle des légendes sont cliquables.
Lorsqu’on clique sur une légende, le détail apparaît dans une petite fenêtre.
Lorsqu’on clique sur cette fenêtre, elle disparaît.
Pour ce faire, en Jquery, j'ai créé 2 variables : 1 pour la légende et une pour les détails. Ensuite, je leur affecte la fonction Toggle().
J'ai utilisé des identifiants pour la précision et la rapidité.
Tout fonctionne bien pour le premier bloc de la page, mais rien ne se passe pour les suivants. Je ne comprends pas trop pourquoi. J'ai dû faire une erreur et je ne vois pas laquelle (vu que je débute et que je n'ai pas encore tout bien assimilé).
Si quelqu'un a une idée, je suis preneuse.
Ci-dessous mon code.
Merci d'avance.
Code HTML
Dans le head :
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
Dans le body :
<div id="main" class="container">
<div class="img-legendee">
<div class="content">
<img src="lande.jpg" class="the-image" style="width:100%">
<div class="legende" data-x="20" data-y="40" style="left: 20%; top: 40%; z-index: 2;">
<div id="ouverture" class="la-legende">La forêt [ + ]</div>
<div id="detail" class="detail">
<img src="fermer.png" width="36" height="36" alt="fermer" class="fermer">
Elle abrite de nombreuses espèces, notamment le pic noir.
</div>
</div>
<div class="legende" data-x="31" data-y="56" style="left: 31%; top: 56%; z-index: 2;">
<div id="ouverture" class="la-legende">La tourbière [ + ]</div>
<div id="detail" class="detail">
<img src="fermer.png" width="36" height="36" alt="fermer" class="fermer">
Ce milieu très fragile est le résultat de l'accumulation progressive de végétaux, peu ou pas décomposés.
</div>
</div>
/div><!--fin the content-->
</div><!--fin img-legendee-->
</div><!--fin main-->
[code=javascript] <script>
var $ouverture = $('#ouverture');
var $detail = $('#detail');
$ouverture.on('click',function(){
$(this).next().toggle(500);
}
);
$detail.on('click',function(){
$(this).toggle(500);
}
);
</script>
[/code]Le code CSS des éléments concernés :
.legende {/*bloc de la légende et du détail*/
position:absolute;
z-index:2;
}
.la-legende {/*légende sur laquelle on clique pour lire le détail*/
background: #333;
color: #fff;
border:4px solid #ffffff;
padding: 4px 9px;
transition: all 0.4s ease-out;
opacity:1;
cursor:pointer;
top:-16px;
left:16px;
position:relative;
}
.detail {/*détail dans le pavé rectangulaire */
position:absolute;
display:none;
width:600px;
background-color:#fff;
border:5px solid #666;
padding: 10px;
bottom:80px;
z-index:3;
}
.fermer{/*positionnement de la croix pour fermer le détail*/
position:relative;
top:-20px;
float:right;
right:-20px;
}
Modifié par codewriter (21 Sep 2017 - 14:58)