Generic CSS Animation for Left-Right Movement
In this article, we'll explore creating a generic CSS animation to move a div left and right, reaching the edges of its container. This animation can be applied to any div with absolute positioning, regardless of its unknown length.
The Issue: Using Left Directly Causes a Momentary Disappearance
Initially, using left at 0% and 100% can cause the div to momentarily disappear while moving. This is because at 100%, the div's left property overshoots the container's width, leading to a negative value and a position off the screen.
A More Fluid Solution: Mixing Transform and Left
To address this issue and achieve a smooth, linear movement, we introduce transform. This allows us to move the div relative to its current position, ensuring it doesn't overshoot the container's bounds.
Here's an updated version of the animation using transform:
@keyframes destraSinistra { 0% { left: 0; } 100% { left: 100%; transform: translateX(-100%); } } #div1 { /* ... */ animation: destraSinistra 1s linear infinite alternate; }
In this code, the keyframe at 100% utilizes both left and transform. Left moves the div to the right edge, while transform further translates it to the left to compensate for the overshoot. This combination effectively prevents the div from going off-screen.
The above is the detailed content of How to Create a Smooth Left-Right CSS Animation for a Div Within Its Container?. For more information, please follow other related articles on the PHP Chinese website!