Table des matières

Diaporama HTML5/CSS3/JavaScript

Page en cours d'écriture

Besoin

Le besoin exprimé est de créer un diaporama en HTML5/CSS3/JavaScript avec les caractéristiques suivantes :

Le diaporama doit avoir un en-tête avec le titre du diaporama, une image qui prend toute la largeur à 80%, la liste des diapositives sur le côté droit, le titre et la description de la diapositive en cours en dessous de l'image et de la liste. L'utilisateur doit pouvoir cliquer sur un élément de la liste des diapositives pour passer directement à cette diapositive.

Analyse

Pour créer un diaporama en HTML5/CSS3/JavaScript, voici les grandes étapes :

Principe de fonctionnement

Afficher et masquer les diapos

Dans le code CSS, chaque diapositive est définie comme un élément avec la classe .slide. Toutes les diapositives sont initialement masquées en utilisant la propriété CSS display: none. Ensuite, la diapositive en cours est affichée en utilisant la classe .current, qui a la propriété CSS display: block. De cette façon, une seule diapositive est affichée à la fois.

/* Diapositives */
.slide {
  ..
  display: none;
}
 
.slide.current {
  ..
  display: block;
}

Lorsque l'utilisateur clique sur un élément de la liste des diapositives, le script JavaScript met à jour la diapositive en cours en cachant la diapositive précédente et en affichant la nouvelle diapositive. Cela se fait en ajoutant et en supprimant la classe .current sur les éléments correspondants.

La propriété CSS display permet de définir le type d'affichage d'un élément. La valeur block est l'un des types d'affichage les plus courants en HTML. Elle permet de créer un élément en tant que bloc qui occupe toute la largeur de son conteneur et qui commence sur une nouvelle ligne.

Lorsque vous utilisez display: block sur un élément, cela signifie qu'il sera affiché sous la forme d'un bloc rectangulaire qui occupe toute la largeur de son conteneur. Cela peut être utile pour afficher des éléments tels que des paragraphes, des titres, des boutons, des images, des divs, etc.

Dans le cas du diaporama, l'utilisation de display: block permet d'afficher la diapositive en cours en tant que bloc rectangulaire à l'intérieur du conteneur de diaporama. Cela permet de faire en sorte que la diapositive remplisse tout l'espace disponible et soit parfaitement visible pour l'utilisateur.

  // Récupérer la diapositive actuelle et la cacher
  const currentSlide = document.querySelector('.slide.current');
  if (currentSlide) {
    currentSlide.classList.remove('current');
  }
 
  // Afficher la nouvelle diapositive
  const newSlide = document.querySelectorAll('.slide')[slideIndex];
  newSlide.classList.add('current');

Modifier le code HTML avec JavaScript

Le code JavaScript est utilisé pour ajouter, supprimer, modifier ou réorganiser les éléments HTML et les propriétés de ces éléments, afin de créer des pages web interactives et dynamiques.

Le code HTML est modifié par JavaScript en utilisant le Document Object Model (DOM). Le DOM est une représentation hiérarchique des éléments HTML d'une page web, qui peut être manipulée en utilisant des scripts JavaScript.

Lorsque le script JavaScript est exécuté, il peut accéder aux éléments HTML existants sur la page web en utilisant des sélecteurs de document, tels que getElementById, getElementsByClassName, querySelector, etc. Il peut également créer de nouveaux éléments HTML en utilisant des méthodes telles que createElement, appendChild, insertBefore, etc.

Le script JavaScript peut ensuite modifier les propriétés des éléments HTML, telles que le contenu du texte, les attributs, les styles CSS, etc. Il peut également ajouter des écouteurs d'événements pour répondre aux interactions de l'utilisateur, tels que les clics de souris, les saisies clavier, les mouvements de la souris, etc.

Dans notre code JavaScript, nous utilisons document.querySelector('.slide.current') pour sélectionner l'élément HTML avec la classe slide et la classe current dans le document. Cette méthode retourne un seul élément HTML qui correspond au premier élément correspondant au sélecteur CSS spécifié.

Nous utilisons cette méthode pour récupérer la diapositive en cours et modifier sa propriété display pour la rendre visible, tout en masquant toutes les autres diapositives. Cela nous permet de créer l'effet de transition entre les diapositives dans le diaporama.

const slideshow = document.getElementById('slideshow');
 
...
 
      // Créer une nouvelle diapositive
      const newSlide = document.createElement('div');
      newSlide.classList.add('slide');
      newSlide.style.backgroundImage = `url(${slide.image})`;
 
      // Ajouter le titre et la description de la diapositive
      const title = document.createElement('h2');
      title.textContent = slide.title;
      newSlide.appendChild(title);
 
      const description = document.createElement('p');
      description.textContent = slide.description;
      newSlide.appendChild(description);
 
...
 
// Ajouter la nouvelle diapositive au diaporama
      slideshow.appendChild(newSlide);
 

et le code HTML :

      <div id="slideshow">
        <!-- Les diapositives seront ajoutées via JavaScript -->
      </div>