/* 定义动画关键帧 */ @keyframes walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(150px) translateY(-50px); } 50% { transform: translateX(300px) translateY(0); } 75% { transform: translateX(450px) translateY(-50px); } 100% { transform: translateX(600px) translateY(0); } } /* 添加动画效果 */ .box { width: 50px; height: 50px; position: relative; animation-name: walk; animation-duration: 2s; animation-iteration-count: infinite; animation-direction: alternate; animation-timing-function: ease-in-out; }
首先,大家需要定义一个名为walk
的关键帧,这个关键帧定义了动画执行时各个时间点的状态。大家将translateX()
和translateY()
属性用来改变元素的位置。在 0% 的时间点,元素的位置是原始的位置;在 25% 的时间点,元素的位置变化为向右下方移动 150px 并向上移动 50px,依此类推。在 100% 的时间点,元素回到原始位置。
接着,在大家需要添加动画效果的元素上,添加animation
属性。这里大家设置了动画的名称、时长、执行次数、方向和缓动函数等属性。其中,animation-direction: alternate;
可以让动画在完成一次循环后反向执行。
最后,大家将这个元素的位置设置为相对定位position: relative;
,这样在执行transform
属性时,它会相对于原始位置进行位移。
通过以上几步,大家就成功地实现了一段 z 字形动画。您可以根据自己的需要调整关键帧的属性值,来获得更多的动画效果。