Maison  >  Article  >  interface Web  >  Comment créer une animation CSS gauche-droite fluide pour une division dans son conteneur ?

Comment créer une animation CSS gauche-droite fluide pour une division dans son conteneur ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 12:34:03352parcourir

How to Create a Smooth Left-Right CSS Animation for a Div Within Its Container?

Animation CSS générique pour le mouvement gauche-droite

Dans cet article, nous explorerons la création d'une animation CSS générique pour déplacer un div vers la gauche et à droite, atteignant les bords de son conteneur. Cette animation peut être appliquée à n'importe quel div avec un positionnement absolu, quelle que soit sa longueur inconnue.

Le problème : l'utilisation directe de Left provoque une disparition momentanée

Initialement, l'utilisation de left à 0 % et 100 %, le div peut disparaître momentanément lors du déplacement. En effet, à 100 %, la propriété left du div dépasse la largeur du conteneur, ce qui entraîne une valeur négative et une position hors de l'écran.

Une solution plus fluide : mélanger Transform et Left

Pour résoudre ce problème et obtenir un mouvement fluide et linéaire, nous introduisons la transformation. Cela nous permet de déplacer le div par rapport à sa position actuelle, garantissant qu'il ne dépasse pas les limites du conteneur.

Voici une version mise à jour de l'animation utilisant transform :

@keyframes destraSinistra {
  0% {
    left: 0;
  }
  100% {
    left: 100%;
    transform: translateX(-100%);
  }
}

#div1 {
  /* ... */
  animation: destraSinistra 1s linear infinite alternate;
}

Dans ce code, l'image clé à 100 % utilise à la fois la gauche et la transformation. Left déplace le div vers le bord droit, tandis que transform le traduit davantage vers la gauche pour compenser le dépassement. Cette combinaison empêche efficacement le div de sortir de l'écran.

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:
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