Salut à tous
je me suis lancé dans la création de bouton "lire plus" en JS mais comme je suis un newbie je rame un peu. c'est pour cela que j'aurais besoin de votre aide.
j'ai crée un dégradé sur une partie du texte qui doit disparaitre, et laissé voir la suite quand on clique sur le bouton "lire plus".
le problème c'est que comme j'ai plusieurs boutons. Quand je clique sur un cela supprime le dégradé sur tous.
je vous met le code vous allez mieux comprendre
le CSS et HTML
le JS
Merci d'avance de votre aide
Cdt
Modifié par spawns (08 Mar 2022 - 00:28)
je me suis lancé dans la création de bouton "lire plus" en JS mais comme je suis un newbie je rame un peu. c'est pour cela que j'aurais besoin de votre aide.
j'ai crée un dégradé sur une partie du texte qui doit disparaitre, et laissé voir la suite quand on clique sur le bouton "lire plus".
le problème c'est que comme j'ai plusieurs boutons. Quand je clique sur un cela supprime le dégradé sur tous.
je vous met le code vous allez mieux comprendre
le CSS et HTML
<style>
.arti {
position: relative;
}
.arti:after {
position: absolute;
bottom: 0;
height: 100%;
width: 100%;
content: "";
background: linear-gradient(to top,
rgba(255,255,255, 1) 20%,
rgba(255,255,255, 0) 80%
);
pointer-events: none; /* so the text is still selectable */
}
</style>
<div class="col">
<div class="card shadow h-100" data-annee="A2007">
<div class="position-absolute top-0 start-0 ms-4 mb-1"><p class="fs-10 text-white opacity-75"><b> 2007 </b></p></div>
<img src="tccimg/annee-2007.jpg" class="card-img-top" alt="">
<div class="card-body"><h2 class="fs-5 py-2 text-center">Lorem ipsum dolor sit amet consectetur.</h2>
<p class="text-center py-2"><button onclick="readMore('A2007')" class="btn btn-outline-n btn-sm myBtn">+ Afficher plus</button></p>
<article class="vide arti">
<p>Lorem, ipsum, dolor sit amet consectetur adipisicing elit. Blanditiis sit in odio optio repellendus, aliquam veritatis distinctio ipsa fugiat, maxime reiciendis nam, aspernatur atque temporibus iure dolor cupiditate, perferendis. Quae.</p>
<div class="dots"></div>
<div class="more" style="display: none;">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Non officia minus nesciunt quisquam sed voluptates laborum, illum nihil dolore, consequuntur illo quod. Saepe eveniet quaerat voluptatum, distinctio tempore porro asperiores.</p>
</div>
</article>
</div>
</div>
</div>
<div class="col">
<div class="card shadow h-100" data-annee="A2011">
<div class="position-absolute top-0 start-0 ms-4 mb-1"><p class="fs-10 text-white opacity-75"><b> 2011 </b></p></div>
<img src="tccimg/annee-2011.jpg" class="card-img-top" alt="">
<div class="card-body"><h2 class="fs-5 py-2 text-center">Lorem ipsum dolor sit amet consectetur.</h2>
<p class="text-center py-2"><button onclick="readMore('A2011')" class="btn btn-outline-n btn-sm myBtn">+ Afficher plus</button></p>
<article class="vide arti">
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ea laborum aliquam repudiandae ex quis veniam officia mollitia nemo animi quaerat natus, quae nostrum velit labore saepe atque architecto at pariatur.</p>
<div class="dots"></div>
<div class="more" style="display: none;">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Laboriosam placeat minima doloribus consequuntur ratione reiciendis, animi fugiat, et iusto perferendis. Id quaerat, recusandae eveniet eos enim, voluptas facere autem atque.</p>
</div>
</article>
</div>
</div>
</div>
le JS
function readMore(annee) {
let dots = document.querySelector(`.card[data-annee="${annee}"] .dots`);
let moreText = document.querySelector(`.card[data-annee="${annee}"] .more`);
let btnText = document.querySelector(`.card[data-annee="${annee}"] .myBtn`);
let article = document.querySelector(`.card[data-annee="${annee}"] .vide`);
if (dots.style.display === "none") {
dots.style.display = "block";
btnText.textContent = "+ Afficher plus";
moreText.style.display = "none";
$( "article" ).addClass( "arti" );
} else {
dots.style.display = "none";
btnText.textContent = "- Afficher moins";
moreText.style.display = "block";
$( "article" ).removeClass( "arti" );
}
}
Merci d'avance de votre aide
Cdt
Modifié par spawns (08 Mar 2022 - 00:28)