首页 前端知识 css 实现轮播图效果

css 实现轮播图效果

2024-02-21 10:02:50 前端知识 前端哥 998 729 我要收藏

目录

  • 一、需要的属性
  • 二、轮播图制作

一、需要的属性

实现轮播图效果主要用到overflow、animation、animation-direction、transform这几个属性

属性作用
overflow主要用于设置盒子的属性,规定当内容溢出元素框时发生的事情,这个属性主要有这个设置值
animation设置元素的动画效果
animation-direction用来定义是否应该轮流反向播放动画的
transform描述了元素的静态样式,本身不会呈现动画效果,可以对元素进行 旋转,倾斜,缩放,移动,以及矩阵变形 matrix。

二、轮播图制作

1.第一步:编写html文件,写两个div,一个用来展示图片,一个用来存放所有图片。
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/RotationChart.css">
</head>
<body>
    <div class="continer">
        <div class="child">
            <img src="./img/1.jpg" >
            <img src="./img/2.jpg" >
            <img src="./img/3.jpg" >
            <img src="./img/4.jpg" >
            <img src="./img/5.jpg" >
        </div>
    </div>
</body>
</html>

2.第二步:编写css样式
首先需要定义continer容器的样式,还有每张图片的大小

.continer{
    margin: 100px auto;
    height: 300px;
    width: 400px;  
    border:4px solid blue;
    overflow: hidden;
    background-color: red;
    position: relative;
}
img{
    height: 300px;
    width: 400px;
} 

每张图片的高和宽要和展示它的div大小一样

效果:
在这里插入图片描述

可以看到展示图片的框框显示了出来,如果没加overflow: hidden;这个属性的话就是下面这个样子
在这里插入图片描述

可以看到用来展示的容器被挡住了,我们希望的是让多余的图片隐藏起来,轮到它的时候才显示出来所以就要加overflow属性。
3.第三步:定义用来存放图片的div样式
代码:

.child{
    display: flex;
    height: 300px;
    width: 2000px;
    animation:video 20s infinite;
	animation-direction:alternate;
}

采用flex横向布局,让5张图片都放在一行。
这里的宽度2000px就是400px乘以图片数量得到的2000px;
animation用来声明动画,第一个参数是关键帧的名字,第二个参数是播放完轮播图需要的时间,第三个参数就是播放的次数,infinite是无限次。
animation-direction用来定义反复播放轮播图

4.第四步:最后一步就是定义关键帧让轮播图动起来
代码:

@keyframes video {
    0%{
        transform: translateX(0);
    }
    25%{
        transform: translateX(-400px);
    }
    50%{
        transform: translateX(-800px);
    }
    75%{
        transform: translateX(-1200px);
    }
    100%{
        transform: translateX(-1600px);
    }
}

translateX就是将图片向左或向右平移多少个像素。

CSS完整代码:

body{
    margin:0px;
}
.continer{
    margin: 100px auto;
    height: 300px;
    width: 400px;  
    border:4px solid blue;
    overflow: hidden;
    background-color: red;
    position: relative;

}
@keyframes video {
    0%{
        transform: translateX(0);
    }
    25%{
        transform: translateX(-400px);
    }
    50%{
        transform: translateX(-800px);
    }
    75%{
        transform: translateX(-1200px);
    }
    100%{
        transform: translateX(-1600px);
    }
}

.child{
    display: flex;
    height: 300px;
    width: 2000px;
    animation:video 20s infinite;
	animation-direction:alternate;
}

img{
    height: 300px;
    width: 400px;
}

以上就是轮播图的制作过程。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/2394.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!