Bonjour, j'ai créé un slider, sauf qu'on me demande de réécrire mon code en orienté objet et là!
Ma tête brûle.
Voici le code, si quelqu'un peut prendre un peu de son temps. Merci
j'ai donc compris que je devais utilisée des class avec contrustor ect avec des this et new.
Sii besoin voici le code html pour le slider
Modifié par loic59244 (09 Jul 2021 - 00:43)
Ma tête brûle.
Voici le code, si quelqu'un peut prendre un peu de son temps. Merci
j'ai donc compris que je devais utilisée des class avec contrustor ect avec des this et new.
// Variables d'ensemble
let compteur = 0;
let timer;
let elements;
let slides;
let slideWidth;
window.onload = () => {
const diapo = document.querySelector(".diapo")
elements = document.querySelector(".elements");
slides = Array.from(elements.children);
//On calcule la largeur visible du diaporama
slideWidth = diapo.getBoundingClientRect().width;
let next = document.querySelector("#nav-droite");
let prev = document.querySelector("#nav-gauche");
let pause = document.querySelector("#pause");
let play = document.querySelector("#play");
next.addEventListener("click", slideNext);
prev.addEventListener("click", slidePrev);
pause.addEventListener("click", slidePause);
play.addEventListener("click", slidePlay);
// RESPONSIVE
window.addEventListener("resize", () => {
slideWidth = diapo.getBoundingClientRect().width;
slideNext();
})
}
timer = setInterval(slideNext, 5000)
document.addEventListener("keydown", function (fleche) {
if (fleche.keyCode === 37) {
slidePrev();
}
else if (fleche.keyCode === 39) {
slideNext();
}
});
function slideNext() {
compteur++;
if (compteur == slides.length) {
compteur = 0;
}
// Permet de deplacer horizontalement le diaporama
let decal = -slideWidth * compteur;
elements.style.transform = `translateX(${decal}px)`;
}
function slidePrev() {
compteur--;
if (compteur < 0) {
;
compteur = slides.length - 1;
};
let decal = -slideWidth * compteur;
elements.style.transform = `translateX(${decal}px)`;
}
function slidePause() {
document.querySelector('#pause').classList.add("d-none");
document.querySelector('#play').classList.remove("d-none");
clearInterval(timer);
}
function slidePlay() {
document.querySelector('#play').classList.add("d-none");
document.querySelector('#pause').classList.remove("d-none");
timer = setInterval(slideNext, 5000)
}
Sii besoin voici le code html pour le slider
<div class="diapo position-relative col-12 p-0" id="diapo">
<h2 class="mb-3 text-center col-12">Comment ça marche ?</h2>
<div class="elements d-flex col-12 p-0 h-100">
<!-- Première diapo -->
<div class="element position-relative col-12 p-0 h-100">
<img class="col-12 p-0 h-100"
src="assets/img/fond.png"
alt="slide1" />
<div class="caption p-3 text-center position-absolute col-6 p-0">
<h3>
<i class="fas fa-map-marker-alt"></i> Choix de la station
</h3>
<p>
Veuillez choisir votre station sur la carte de Rouen si
dessous
</p>
</div>
</div>
<!-- Deuxième diapo -->
<div class="element position-relative col-12 p-0 h-100">
<img class="col-12 p-0 h-100"
src="assets/img/fond.png"
alt="slide2" />
<div class="caption p-3 text-center position-absolute col-6">
<h3>
<i class="fas fa-info-circle"></i> Informations de la station
</h3>
<p>
Aprés avoir cliqué sur un marqueur vous verrez les
informations concernant la station.
</p>
</div>
</div>
<!-- Troisième diapo-->
<div class="element position-relative col-12 p-0 h-100">
<img class="col-12 p-0 h-100"
src="assets/img/fond.png"
alt="slide3" />
<div class="caption p-3 text-center position-absolute col-6">
<h3>
<i class="fas fa-address-book"></i> Remplir le formulaire
</h3>
<p>
Aprés avoir choisit votre station veuillez remplir votre nom
,prénom et signez dans le cadre blanc pour réserver !
</p>
</div>
</div>
<!-- Quatrième diapo-->
<div class="element position-relative col-12 p-0 h-100">
<img class="col-12 p-0 h-100"
src="assets/img/fond.png"
alt="slide4" />
<div class="caption p-3 text-center position-absolute col-6">
<h3>
<i class="fas fa-stopwatch-20"></i> Votre vélo est réservé
</h3>
<p>
Aprés avoir cliquez sur le button, votre vélo est donc
disponible pendant 20min.
</p>
</div>
</div>
</div>
Modifié par loic59244 (09 Jul 2021 - 00:43)