css中怎样让图片一张张划过

admin 轻心小站 关注 LV.19 运营
发表于前端技术学习版块 css,教程

在CSS中,有多种方法可以使图片一张张划过,下面我们来介绍其中两种方法。/* 方法一:使用animation实现图片切换 */ .box { width: 960px; height: 400px;

在CSS中,有多种方法可以使图片一张张划过,下面我们来介绍其中两种方法。

/* 方法一:使用animation实现图片切换 */

.box {
   width: 960px;
   height: 400px;
   margin: 50px auto;
   position: relative;
   overflow: hidden;
}

@keyframes rolling {
   0% {
      left: 0;
   }
   20% {
      left: 0;
   }
   25% {
      left: -960px;
   }
   45% {
      left: -960px;
   }
   50% {
      left: -1920px;
   }
   70% {
      left: -1920px
   }
   75% {
      left: -2880px;
   }
   100% {
      left: -2880px;
   }
}

.box img {
   width: 960px;
   height: 400px;
   position: absolute;
   left: 0;
   top: 0;
   animation: rolling 10s linear infinite;
} 

上面代码中,我们创建了一个包含多张图片的容器,设置了其宽度、高度、位置和溢出等属性。然后,定义了一个名为rolling的关键帧动画,该动画包括8个关键帧,每个关键帧定义了图片容器的位置。

接下来,在图片元素上应用该动画,设置了单张图片的宽度、高度和位置等属性,最后,定义了图片水平滚动的时间函数、速度和是否无限循环等属性。

/* 方法二:使用transition实现图片切换 */

.box {
   width: 960px;
   height: 400px;
   margin: 50px auto;
   position: relative;
   overflow: hidden;
}

.box img {
   width: 960px;
   height: 400px;
   position: absolute;
   left: -960px;
   top: 0;
   transition: left 2s linear;
}

.box img:nth-child(2) {
   left: 0;
   z-index: 2;
}

.box img:nth-child(3) {
   left: 960px;
   z-index: 3;
}

.box img:nth-child(4) {
   left: 1920px;
   z-index: 4;
}

.box:hover img {
   left: calc(-960px * 2);
} 

上面代码中,我们设置了和方法一相同的图片容器和单张图片属性,然后,定义了每个图片元素的初始位置和z-index(避免图片重叠)。

接下来,使用:hover伪类和transition属性,设置了当鼠标悬停在图片容器上时,图片元素的位置。同时,transition属性确保位置变化具有渐变效果。

以上两种方法都可以让图片一张张划过,你可以根据自己的需求选择其中一种。

文章说明:

本文原创发布于探乎站长论坛,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,探乎站长论坛平台仅提供信息存储空间服务。

评论列表 评论
发布评论

评论: css中怎样让图片一张张划过

粉丝

0

关注

0

收藏

0

已有0次打赏