In css3, animation is defined through @keyframes, and animation sets animation properties to achieve animation effects;
In the animation property, you can specify the name of the animation, the running time of the entire animation, the speed curve of the movement, and other Delay time, play times, etc.
animation, as a composite attribute, includes the following animation attributes.
Specify the speed curve of animation. The default is "ease". Commonly used motion speed curves include the following:
linear: linear transition.
ease-in: from slow to fast.
ease-out: from fast to slow.
ease-in-out: from slow to fast to slow again.
You can also directly use the Bezier curve to specify the running speed curve. The four values of the Bezier curve must be within the [0, 1] interval.
Specifies whether the animation will play in reverse in the next cycle. The default is "normal".
reverse: Movement in the opposite direction
alternate: First movement in the normal direction and then in the reverse direction, continuing to alternate
alternate-reverse: First move in the reverse direction and then in the normal direction, continuing to alternate
The state outside the specified object animation time. Commonly used values are as follows:
none: Default value
forwards: Set the object state to the state at the end of the animation
backwards: Set the object state to the state when the animation starts
The implementation code is as follows:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>沿圆形轨迹运动</title> <style type="text/css"> *{ margin: 0; padding: 0; } html,body{ height: 100%; } #trajectory { width: 300px; height: 300px; border: 4px solid #949494; border-radius: 50%; position: relative; left: calc(50% - 153px); top:calc(50% - 153px); } @keyframes moveX{ 0% {left: -22px;} 100% {left: 282px;} } @keyframes moveY{ 0% {top: -22px;} 100% {top: 282px;} } #move { width: 40px; height: 40px; font-size: 12px; background-color: #32c33a; border-radius: 50%; position: absolute; left:-22px; top:-22px; animation: moveX 4s cubic-bezier(0.36,0,0.64,1) -2s infinite alternate, moveY 4s cubic-bezier(0.36,0,0.64,1) 0s infinite alternate; } </style></head><body> <p id="trajectory"> <p id="move">Immortal brother</p> </p></body></html>
Above Notes on the code are as follows:
The reason for setting the body height to 100% is that the default height of the body in the HTML5 environment is 0
calc During use, the spaces at both ends of the "-" and "+" between the values are essential
The left and top values in the animation are the starting position and the starting position of the object's movement End position, please pay attention to the border value
The movement trajectory of the animation executed at one time is only half
Speed curve: cubic-bezier(0.36,0 ,0.64,1);
Setting of delay time in both directions Continuously alternate operation in the opposite direction: alternate
The above is the detailed content of Implementation of circular motion trajectory in css3 animation. For more information, please follow other related articles on the PHP Chinese website!