CSS3 提供了许多用于制作动画的工具和技巧,其中上下动画是一种常见的效果。下面是一个使用 CSS3 制作上下动画执行一次的示例。
在这个示例中,大家将创建一个容器,其中包含一个包含两个元素的元素。大家将使用 CSS3 的 `transform` 属性来创建上下滚动的效果,并在滚动到顶部或底部时执行一次动画。
.container {
position: relative;
width: 400px;
height: 300px;
.container .content {
position: absolute;
top: 0;
left: 0;
width: 400px;
height: 300px;
background-color: #f00;
overflow: hidden;
.container .content .row {
display: flex;
flex-wrap: wrap;
.content .row .col {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 100px;
height: 100px;
background-color: #f00;
animation:动画 1s infinite;
.content .row .col:nth-child(1) {
animation-delay: 0.2s;
.content .row .col:nth-child(2) {
animation-delay: 0.4s;
@keyframes动画 {
0% {
transform: translateY(0);
100% {
transform: translateY(-300px);
在这个示例中,大家创建了一个容器,其中包含一个包含两个元素的元素。大家使用 CSS3 的 `transform` 属性来创建上下滚动的效果。在滚动到顶部或底部时,大家将使用动画来执行一次上下滚动的效果。
在容器上,大家使用 `position: relative` 属性将其定位在父容器中。大家使用 `width: 400px;` 和 `height: 300px` 属性设置容器的宽度和高度。大家将 `background-color` 设置为一个颜色来填充容器。
在 `.content` 元素中,大家使用 `position: absolute` 属性将其定位在父容器之外。大家使用 `top: 0;` 和 `left: 0` 属性设置其初始位置。大家使用 `width: 400px;` 和 `height: 300px` 属性设置其宽度和高度。大家将 `background-color` 设置为一个颜色来填充容器。
在 `.row` 元素中,大家使用 `display: flex;` 属性将其转换为一个包含多个子元素的 Flex 容器。大家将 `flex-wrap` 设置为 `wrap`,以便容器可以无限滚动。大家将 `display: flex` 和 `flex-wrap` 属性的值都设置为 ` wrap`,以使子元素可以无限滚动。
在 `.col` 元素中,大家将 `position: absolute` 属性设置为其父元素的子元素,并将其定位在容器的顶部。大家将 `top: 50%;` 和 `transform: translateY(-50%);` 属性设置为其初始位置。大家将 `width: 100px;` 和 `height: 100px;` 属性设置为其值,以使其在滚动时保持不变。
当大家滚动到容器的底部时,大家将使用动画来执行一次上下滚动的效果,使 `.col` 元素到达顶部,并重置其 `transform` 属性为初始值。当滚动到顶部时,大家将再次执行一次动画,使 `.col` 元素到达底部,并重置其 `transform` 属性为初始值。
通过使用 CSS3 的 `transform` 属性,大家可以轻松地创建上下滚动的效果,并在滚动到顶部或底部时执行一次动画。