Maison interface Web tutoriel CSS Tutoriel sur l'utilisation de CSS pour implémenter l'effet carrousel automatique d'images réactives

Tutoriel sur l'utilisation de CSS pour implémenter l'effet carrousel automatique d'images réactives

Nov 21, 2023 am 08:37 AM
css Sensible Carrousel

Tutoriel sur lutilisation de CSS pour implémenter leffet carrousel automatique dimages réactives

Avec la popularité des appareils mobiles, la conception Web doit prendre en compte des facteurs tels que la résolution de l'appareil et la taille de l'écran des différents terminaux pour obtenir une bonne expérience utilisateur. Lors de la mise en œuvre d'un design réactif d'un site Web, il est souvent nécessaire d'utiliser l'effet carrousel d'images pour afficher le contenu de plusieurs images dans une fenêtre visuelle limitée, et en même temps, cela peut également améliorer l'effet visuel du site Web. Cet article expliquera comment utiliser CSS pour obtenir un effet de carrousel automatique d'image réactif, et fournira des exemples de code et une analyse.

Idées d'implémentation

Un carrousel d'images réactif peut être implémenté via une mise en page flexible CSS. Dans un conteneur fixe, configurez un conteneur flexible pour contenir chaque image dans un sous-conteneur flexible. Ensuite, en définissant la disposition des sous-conteneurs flexibles et la largeur des sous-éléments, la disposition en mosaïque des images est obtenue. Cependant, étant donné que la largeur du conteneur sera différente selon les tailles d'écran, vous devez utiliser des requêtes multimédias pour modifier dynamiquement la largeur du conteneur et des sous-éléments afin de vous adapter aux différentes résolutions d'écran. Ensuite, en définissant l'effet d'animation de CSS3, l'effet carrousel automatique est réalisé et l'effet de glissement est réalisé via js.

Étapes d'implémentation

  1. Partie HTML

Tout d'abord, nous devons créer un conteneur contenant plusieurs images dans la partie HTML, comme indiqué ci-dessous :

<div class="carousel-container">
  <div class="carousel-items">
    <img src="/static/imghw/default1.png"  data-src="image1.jpg"  class="lazy" alt="">
    <img src="/static/imghw/default1.png"  data-src="image2.jpg"  class="lazy" alt="">
    <img src="/static/imghw/default1.png"  data-src="image3.jpg"  class="lazy" alt="">
    <img src="/static/imghw/default1.png"  data-src="image4.jpg"  class="lazy" alt="">
    <img src="/static/imghw/default1.png"  data-src="image5.jpg"  class="lazy" alt="">
  </div>
  <div class="carousel-prev"></div>
  <div class="carousel-next"></div>
</div>

Parmi eux, .carousel-container est le nom du style du conteneur, .carousel -items est le nom de style du sous-conteneur contenu dans l'image, .carousel-prev et .carousel-next sont les noms de style des flèches gauche et droite, nous définirons les styles dans la section CSS.

  1. Partie CSS

Ensuite, nous devons définir les styles dans la partie CSS, y compris les styles des conteneurs, des sous-conteneurs et des flèches. Le code spécifique est le suivant :

.carousel-container {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: auto;
}

.carousel-items {
  display: flex;
  flex-wrap: nowrap;
  width: 500%; /* 将子容器宽度扩大5倍 */
}

.carousel-items img {
  width: 20%;
  margin-right: 1rem;
  flex: 1;
}

.carousel-prev,
.carousel-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  background-color: rgba(0,0,0,0.5);
  color: #fff;
  text-align: center;
  line-height: 50px;
  cursor: pointer;
}

.carousel-prev {
  left: 0;
}

.carousel-next {
  right: 0;
}

Dans la définition du style, nous définissons le positionnement relatif du conteneur afin d'obtenir un positionnement absolu des sous-conteneurs et des flèches. En utilisant overflow:hidden, vous pouvez masquer les parties débordantes des sous-conteneurs dans le conteneur. Le sous-conteneur adopte une disposition flexible et l'attribut nowrap empêche les éléments du sous-conteneur de s'enrouler. Et définissez la largeur du sous-conteneur à 500 %. En définissant la largeur des images dans le sous-conteneur à 20 %, chaque ligne peut afficher 5 images et en définissant la marge droite entre les images sur 1rem pour rendre l'effet d'affichage plus beau. Les flèches gauche et droite sont centrées verticalement via un positionnement absolu et une marge supérieure négative.

  1. Requête multimédia pour définir des attributs réactifs

Sous différentes tailles d'écran, la largeur du conteneur et des sous-éléments doit être modifiée dynamiquement pour s'adapter aux différentes résolutions d'écran. Nous pouvons définir des propriétés réactives via des requêtes multimédias et modifier la largeur du conteneur et des sous-conteneurs à différentes tailles d'écran, comme indiqué ci-dessous :

/* 根据不同屏幕尺寸改变样式 */
@media (max-width: 768px) {
  .carousel-items img {
    width: 50%;
  }
  .carousel-container {
    height: 250px;
  }
}

@media (max-width: 480px) {
  .carousel-items img {
    width: 100%;
    margin-right: 0;
  }
  .carousel-container {
    height: 180px;
  }
}

Dans l'exemple ci-dessus, nous définissons les éléments du carrousel img et carrousel en fonction de la taille de la fenêtre. changer le style du conteneur. Sur un petit écran, nous définissons chaque image à 50 % de largeur, ne définissons pas la marge droite entre les images et définissons la hauteur à 250 px dans le conteneur .crosso. Sur un écran plus petit, nous définissons l'image à 100 %. défini sur 180px dans le conteneur .crosso.

  1. Animation CSS3

En utilisant l'animation CSS3, vous pouvez obtenir un effet carrousel d'image automatique. L'exemple de code est le suivant :

@keyframes carousel-animation {
  0% {
      transform: translateX(0);
  }
  100% {
      transform: translateX(-100%);
  }
}

.carousel-items {
  /* 动画设置 */
  animation: carousel-animation 10s infinite linear;
}

.carousel-items:hover {
  /* 鼠标悬停时终止动画 */
  animation-play-state: paused;
}

Dans l'exemple ci-dessus, nous définissons le sous-conteneur d'image pour qu'il défile une fois toutes les 10 secondes, et l'animation. est complété par carrousel-animation , linéaire signifie que l'animation est linéaire et infini signifie que l'animation boucle à l'infini.

  1. JavaScript pour obtenir un effet de glissement

Enfin, nous utilisons JavaScript pour obtenir l'effet de glissement d'image lorsque vous cliquez sur les flèches gauche et droite. L'exemple de code est le suivant :

// 获取左右箭头元素
var prev = document.querySelector(".carousel-prev");
var next = document.querySelector(".carousel-next");

// 图片滚动函数
function carouselScroll(direction) {
  var container = document.querySelector(".carousel-items");
  var minScrollLeft = 0;
  var maxScrollLeft = container.scrollWidth - container.clientWidth;
  var increment = 20 * direction;

  container.scrollLeft += increment;

  if (container.scrollLeft < minScrollLeft) {
    container.scrollLeft = maxScrollLeft;
  } else if (container.scrollLeft > maxScrollLeft) {
    container.scrollLeft = minScrollLeft;
  }
};

// 给左右箭头绑定事件
prev.addEventListener("click", function() {
  carouselScroll(-1);
});

next.addEventListener("click", function() {
  carouselScroll(1);
});

Dans l'exemple ci-dessus, nous obtenons les éléments. des flèches gauche et droite via querySelector et l'événement de clic de liaison. Utilisez la fonction carouselScroll pour obtenir l’effet de glissement d’image à chaque fois que vous cliquez. containers.scrollWidth représente la largeur effective du sous-conteneur et containers.clientWidth représente la largeur visible lors du défilement jusqu'au bord du conteneur, la position de défilement sera définie sur la position opposée pour obtenir l'effet de défilement circulaire.

Résumé

Dans cet article, nous avons utilisé les effets de mise en page et d'animation flexibles de CSS3, ainsi que JavaScript pour implémenter les événements de clic des flèches gauche et droite, et implémenté avec succès un effet de carrousel automatique d'image responsive. Nous avons également obtenu une conception réactive plus riche en ajoutant des requêtes multimédias et des effets de survol. Les exemples de code ont un certain degré de généralité et sont également utiles comme référence pour les débutants.

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Porce de variable PHP expliquée
1 Il y a quelques mois By 百草
Commentant le code en php
1 Il y a quelques mois By 百草
<🎜>: Grow A Garden - Guide complet des marchands itinérants
4 Il y a quelques semaines By Jack chen
Conseils pour écrire des commentaires PHP
1 Il y a quelques mois By 百草

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1511
276
Quelles sont les applications de trading de devises virtuel Quelles sont les applications de trading de devises virtuel Aug 08, 2025 pm 06:42 PM

1. Binance est connue pour son énorme volume de transactions et ses paires de trading riches. Il fournit des modèles de trading diversifiés et des écosystèmes parfaits. Il garantit également la sécurité des actifs des utilisateurs via les fonds SAFU et les technologies de sécurité multiples et attache une grande importance aux opérations conformes; 2. OKX OUYI fournit un large éventail de services de trading d'actifs numériques et de modèles de comptes de trading unifiés, déploie activement le domaine Web3 et améliore la sécurité et l'expérience des transactions grâce à un contrôle des risques strict et à l'éducation des utilisateurs; 3. Gate.io Sesame ouvre la porte et a une bonne vitesse de devise et une monnaie riche, fournit des outils de trading diversifiés et des services à valeur ajoutée, adopte plusieurs mécanismes de vérification de sécurité et adhère à la transparence des réserves d'actifs pour améliorer la confiance des utilisateurs; 4. Huobi fournit des services d'actifs numériques à guichet unique avec une accumulation profonde de l'industrie, avec une forte profondeur de transaction et

Comment utiliser les unités VW et VH dans CSS Comment utiliser les unités VW et VH dans CSS Aug 07, 2025 pm 11:44 PM

Les unités VW et VH obtiennent une conception réactive en associant des tailles d'élément avec la largeur et la hauteur de la fenêtre; 1VW est égal à 1% de la largeur de la fenêtre et 1VH est égal à 1% de la hauteur de la fenêtre; couramment utilisé dans la zone pleine écran, les polices réactives et l'espacement élastique; 1. Utilisez 100VH ou mieux 100dvh dans la zone en plein écran pour éviter l'influence de la barre d'adresse du navigateur mobile; 2. 3. Espacement élastique comme la largeur: 80vw, marge: 5Vhauto, rembourrage: 2VH3VW, peut rendre la disposition adaptable; Faites attention à la compatibilité des appareils mobiles, à l'accessibilité et aux conflits de contenu de largeur fixe, et il est recommandé de donner la priorité à l'utilisation d'abord de DVH;

Comment créer une ligne verticale avec CSS Comment créer une ligne verticale avec CSS Aug 11, 2025 pm 12:49 PM

Utilisez une div avec bordure pour créer rapidement des lignes verticales et définissez des styles et des hauteurs en fixant la bordure-gauche et la hauteur; 2. Utiliser :: avant ou :: après des pseudo-éléments pour ajouter des lignes verticales sans étiquettes HTML supplémentaires, adaptées à la séparation décorative; 3. Dans la disposition de Flexbox, en réglant la largeur et la couleur d'arrière-plan de la classe de diviseur, les séparateurs verticaux adaptatifs entre les conteneurs élastiques peuvent être obtenus; 4. Dans CSSGrid, insérez les lignes verticales sous forme de colonnes indépendantes (telles que les colonnes auto-idgeth) en disposition de la grille, qui convient à la conception réactive; La méthode la plus appropriée doit être sélectionnée en fonction de la mise en page spécifique pour s'assurer que la structure est simple et facile à entretenir.

Comment utiliser la propriété Filtre dans CSS Comment utiliser la propriété Filtre dans CSS Aug 11, 2025 pm 05:29 PM

ThecsssfilterPropertyAllowsVisualEffectslikeBlur, Brightness et GrayscaletobeAppliedDirectlyToHtMlelements.1) usethesyntaxfilter: filter-function (valeur) toapplyeffects.2) combinemultipleFilterSwithSpacesparation, e.g., Blur (2px) Brightness (70%).

Que sont les pseudo-classes CSS et comment les utiliser? Que sont les pseudo-classes CSS et comment les utiliser? Aug 06, 2025 pm 01:06 PM

La pseudo-classe CSS est un mot-clé utilisé pour définir l'état spécial d'un élément. Il peut appliquer dynamiquement des styles en fonction de l'interaction utilisateur ou de l'emplacement du document; 1.: Hover est déclenché lorsque la souris est en plane, comme le bouton: le volant modifie la couleur du bouton; 2.: Focus prend effet lorsque l'élément se concentre, améliorant l'accessibilité du formulaire; 3.: lent-enfant () sélectionne les éléments par position, soutenant des formules étranges, même ou des formules telles que 2n 1; 4.: d'abord-enfant et: dernier-enfant sélectionnez les premiers et derniers éléments enfants respectivement; 5.: Non () exclut les éléments qui correspondent aux conditions spécifiées; 6.: Visité et: Styles de définition des liens basés sur l'état d'accès aux liens, mais: Visité est limitée par la confidentialité.

Comment utiliser efficacement les sélecteurs CSS Comment utiliser efficacement les sélecteurs CSS Aug 11, 2025 am 11:12 AM

Lorsque vous utilisez des sélecteurs CSS, les sélecteurs à faible spécifiquement spécifique doivent être utilisés en premier pour éviter les limitations excessives; 1. Comprendre le niveau de spécificité et les utiliser raisonnablement dans l'ordre de type, de classe et d'ID; 2. Utilisez des noms de classe polyvalents pour améliorer la réutilisabilité et la maintenabilité; 3. Utilisez des attributs et des sélecteurs de classe pseudo pour éviter les problèmes de performances; 4. Gardez le sélecteur court et clair; 5. Utiliser BEM et d'autres spécifications de dénomination pour améliorer la clarté structurelle; 6. Évitez les abus de sélecteurs de balises et: nième-enfant, et donnez la priorité à l'utilisation de classes d'outils ou de CSS modulaires pour s'assurer que le style est contrôlable pendant longtemps.

Comment utiliser CSS clamp () pour une typographie réactive? Comment utiliser CSS clamp () pour une typographie réactive? Aug 06, 2025 pm 04:51 PM

CLAMP () incSSenablesFluid, ResponsiveTypographyBysettingAvaluebetweenaminimum, Preferred, andmaximumSize; 1.Serclamp (min, préféré, max) todéfinescalablefontsize; 2.setminandMaxinremForAccessibility; 3.UsevwintrefredValuewitharEMOffsetforsMoothscaleding; 4

Comment empêcher une rupture de ligne en CSS Comment empêcher une rupture de ligne en CSS Aug 08, 2025 pm 05:14 PM

Utiliser White Space: NowRaptOPROPRETTEXTSFROMBRINKINGETOMULTIPLELINES, garantissant un contenustaysonasingLeline; 2.ApplyThisPropertyToInline, en ligne en ligne, Orflexitems, WhereFlex-Wrap: NowRappReventsItemWrappingandWhite-Space: NowRappReventsInterNalTextWrapping; 3.Forspe

See all articles