Maison  >  Article  >  interface Web  >  Implémenter des transitions d'image avec des effets de fondu à l'aide de JavaScript

Implémenter des transitions d'image avec des effets de fondu à l'aide de JavaScript

WBOY
WBOYavant
2023-08-24 16:21:041232parcourir

使用 JavaScript 实现具有淡入淡出效果的图像过渡

La conversion d'images signifie changer d'images et remplacer une image par une autre image. Les utilisateurs peuvent voir la transition de l'image dans le curseur d'image.

Lors du développement du curseur d'image, nous devons nous concentrer sur l'animation de la transition d'image pour que l'application offre une expérience utilisateur attrayante. Dans ce didacticiel, nous apprendrons à ajouter un effet de fondu à l'aide de diverses méthodes de transition d'image.

Ajoutez une classe à l'image pour afficher l'image avec un effet de fondu

Nous pouvons ajouter des effets de fondu aux transitions d'image en utilisant CSS. La propriété transition de CSS nous permet d'ajouter n'importe quelle transition à une image. Nous pouvons donc ajouter du CSS à une classe et en utilisant JavaScript nous pouvons ajouter une classe à l'image qui ajoutera une transition à l'image

Grammaire

Les utilisateurs peuvent suivre la syntaxe ci-dessous pour ajouter une classe à l'image afin d'afficher l'image avec un effet de fondu.

document.getElementById("image").classList = 'class_name';

Dans la syntaxe ci-dessus, nous accédons à l'image en utilisant l'identifiant et ajoutons la classe "class_name" à la liste des classes de l'image.

Exemple

Dans l'exemple ci-dessous, nous avons ajouté une image à une page Web et lui avons attribué une hauteur et une largeur à l'aide de CSS. De plus, nous avons ajouté une valeur d'opacité de 0 dans la classe img.

De plus, nous avons ajouté les propriétés « transition » et « opacité » à la classe d'animation. Initialement, l'image ne contient pas la classe « animer ». Lorsque l'utilisateur clique sur le bouton, il exécute la fonction FadeIn(), ajoutant la classe « animer » à l'image.

Dans le résultat, nous pouvons observer que l'image s'estompe lorsque nous ajoutons la classe "animer".

<html>
<head>
   <style>
      img {
         opacity: 0;
      }
      .animate {
         -webkit-transition: 2s;
         transition: 2s;
         opacity: 1;
      }
   </style>
</head>
<body>
   <h2> Using the <i> class </i> to add fadding effect in image transition </h2>
   <img id = "image" style = "width: 500px; height: 200px;" src = "https://www.tutorialspoint.com/static/images/logo-color.png" alt = "Logo Image"> <br>
   <button type = "button" onclick = "FadeIn()"> Fade In image </button>
   <script>
      function FadeIn() {
         document.getElementById("image").classList = 'animate';
      }
   </script>
</body>
</html>

Ajoutez des transitions de fondu aux images à l'aide des méthodes fadeIn() et fadeout() de jQuery

La méthode fadeout() de JQuery nous permet de supprimer des images des pages Web avec un effet de fondu. La méthode fadeIn() nous permet d'ajouter une image avec un effet de fondu à la page Web.

Ici, nous utiliserons les méthodes fadeout() et fadeIn() pour ajouter un effet de fondu approprié à la transition de l'image.

Grammaire

Les utilisateurs peuvent utiliser les méthodes fadeout() et fadeIn() de JQuery selon la syntaxe suivante pour ajouter des effets de fondu aux transitions d'image.

setInterval(fade, 3500);
function fade() {
   $("#slider img").eq(current).fadeOut(0);
   current = ++current % images.length;
   $("#slider img").eq(current).fadeIn(2000);
}

Dans la syntaxe ci-dessus, la variable actuelle garde la trace de l'image à afficher sur la page Web. Nous utilisons la méthode fadeIn() pour afficher l'image actuelle et masquer toutes les autres images.

Étapes

Étape 1 – Accédez à toutes les images en utilisant le nom de la classe.

Étape 2 – Utilisez une boucle for pour parcourir toutes les images et masquer toutes les images sauf la première à l'aide de la propriété d'affichage de l'image.

Étape 3 – Créez une variable appelée « actuelle » et initialisez-la à zéro.

Étape 4 – Créez une fonction startImageTrans() et utilisez la méthode setInterval() pour appeler la fonction fade() toutes les 3 500 millisecondes. Cependant, les utilisateurs peuvent définir l'intervalle de temps en fonction de leurs besoins

Étape 5 – Dans la fonction fade(), utilisez la méthode eq() de JQuery pour accéder à l'enfant actuel. Utilisez la méthode fadeout() pour masquer l'image actuelle.

Étape 6 – Augmentez la valeur de la variable actuelle de 1 ou définissez-la sur 0 si elle est supérieure au nombre total d'images.

Étape 7 – Utilisez la méthode fadeIn() pour afficher l'image actuelle.

Exemple

Dans l'exemple ci-dessous, nous avons créé un élément HTML div et ajouté cinq images différentes. Nous avons implémenté l'algorithme ci-dessus en JavaScript pour toutes les images une par une, avec un effet de transition en fondu.

<html>
<head>
   <script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
   <style>
      img {
         height: 200px;
         width: 500px;
      }
   </style>
</head>
<body>
   <h3> Using the <i> jQuery fadeIn() method </i> to add fadding effect in image transition </h3>
   <div id="slider">
      <img src = "https://www.tutorialspoint.com/static/images/logocolor.png" class = "sliderImage" alt = "Image 1">
      <img src ="https://www.tutorialspoint.com/images/trending_categories.svg" class = "sliderImage" alt = "Image 2">
      <img src = "https://www.tutorialspoint.com/images/Data-Structure.png" class = "sliderImage" alt = "Image 3">
      <img src = "https://www.tutorialspoint.com/images/Javascript.png" class = "sliderImage" alt = "Image 4">
   </div>
   <br> <br>
   <button type = "button" onclick = "startImageTrans()"> Start Image Transitions </button>
   <script>
      let images = document.querySelectorAll('.sliderImage');
      for (let i = 0; i < images.length; i++) {
         if (i != 0)
         images[i].style.display = "none";
      }
      var current = 0;
      function startImageTrans() {
         setInterval(fade, 3500);
      }
      function fade() {
         
         // hide the previous image with fading effect
         $("#slider img").eq(current).fadeOut(0);
         current++;
         current = current % images.length;
         
         // show a current image with fading effect
         $("#slider img").eq(current).fadeIn(2000);
      }
   </script>
</body>
</html>

Ajoutez un effet de fondu aux transitions d'image à l'aide des propriétés de transition CSS

Dans cette méthode, nous définirons l'image d'arrière-plan de l'élément HTML. De plus, nous ajouterons une transition en fondu à l’arrière-plan de l’élément HTML. Ainsi, chaque fois que nous modifions l’arrière-plan, il apparaîtra et disparaîtra.

Grammaire

Les utilisateurs peuvent suivre la syntaxe suivante pour ajouter un effet de fondu à l'image d'arrière-plan à l'aide des propriétés de transition CSS.

<style>
#background-div {
   background-image: url("image_URL");
   transition: background 2s linear;
}
</style>
function FadeImage() {
   imageDiv.style.backgroundImage = `url(${allImages[current]})`;
}

Nous avons ajouté une image d'arrière-plan à l'élément et "transitionné" vers l'arrière-plan en utilisant CSS dans la syntaxe ci-dessus. Chaque fois que nous modifions l'image d'arrière-plan à l'aide de JavaScript, celui-ci applique automatiquement la transition en fondu à l'image.

Exemple

Dans l'exemple ci-dessous, l'élément div contient l'image d'arrière-plan initiale. Nous avons créé un tableau d'images contenant les URL de différentes images d'arrière-plan. Nous utilisons la méthode setInterval() pour appeler la fonction fadeInImage() toutes les 3000 millisecondes.

Dans la fonction fadeInImage(), nous modifions à plusieurs reprises l'image d'arrière-plan, et lorsque l'image change, une transition en fondu est effectuée à l'aide de CSS.

<html>
<head>
   <style>
      #background-div {
         background-position: center;
         background-size: cover;
         background-image:
         url("https://www.tutorialspoint.com/images/trending_categories.svg");
         display: flex;
         height: 300px;
         width: 600px;
         transition: background 2s linear;
      }
   </style>
</head>
<body>
   <h3>Using the <i> CSS transition </i> to add fadding effect in image transition</h3>
   <div id = "background-div"></div>
   <script>
      let allImages = [
         "https://www.tutorialspoint.com/images/trending_categories.svg",
         "https://www.tutorialspoint.com/javascript/images/javascript-minilogo.jpg",
         "https://www.tutorialspoint.com/css/images/css-mini-logo.jpg",
      ]
      const imageDiv = document.getElementById("background-div");
      setInterval(FadeImage, 3000);
      let current = 0;
      function FadeImage() {
         current++;
         if (current >= allImages.length) current = 0;
         imageDiv.style.backgroundImage = `url(${allImages[current]})`;
      }
   </script>
</body>
</html>

Nous avons appris trois façons d'ajouter un effet de fondu aux transitions d'image. Nous avons utilisé les méthodes fadeIn() et fadeout() de JQuery dans la deuxième méthode, ainsi que la propriété CSS "transition" dans les première et troisième méthodes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer