


Tutoriel sur l'utilisation de CSS pour implémenter l'effet carrousel automatique d'images 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
- 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.
- 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.
- 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.
- 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.
- 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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

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

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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

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;

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.

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

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é.

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.

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

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