前端实战案例⑩CSS动画实现轮播图

更多前端简单小组件尽在主页!喜欢可以收藏哦!



<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS动画实现轮播图</title>
		<style>
			/* 初始化样式 */
			*{
				margin: 0;
				padding: 0;
			}
			/* 设置宽高,使用定位+transform进行水平垂直居中 */
			#banner{
				width: 520px;
				height: 280px;
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%,-50%);
				overflow: hidden;
			}
			/* 设置navigation的宽高并使用 display: flex;
				justify-content: space-around;
				align-items: center;
				进行对内容的居中
			*/
			.navigation{
				width: 72px;
				height: 13px;
				background-color: rgba(255,255,255,0.3);
				position: absolute;
				left: 50%;
				bottom: 15px;
				transform: translateX(-50%);
				border-radius: 7px;
				display: flex;
				justify-content: space-around;
				align-items: center;
			}
			/* 设置label的宽高,label必须设置为块级元素才能设置宽高
				并将label设置为一个背景色为白色的小圆
			 */
			.navigation label{
				display: inline-block;
				width: 8px;
				height: 8px;
				background-color: #FFFFFF;
				border-radius: 50%;
			}
			/* 设置label鼠标移入:背景色变化为#FF5000 */
			.navigation label:hover{
				background-color: #FF5000;
			}
			/* 将input单选框隐藏,使用绝对定位是使input占用的空间释放出来 */
			.sliders input[name='r']{
				position: absolute;
				visibility: hidden;
			}
			/* 设置sliders宽度为500%,flex为一行显示 */
			.sliders{
				width: 500%;
				height: 100%;
				display: flex;
			}
			/* 设置slider的宽为20%,这个20%为父元素的20%,
			   即500%的20%->100%也就是一张图片的宽度*/
			.slider{
				width: 20%;
				transition: 0.6s;
			}
			/* 设置图片的宽高 */
			.slider img{
				width: 100%;
				height: 100%;
			}
			/* 设置单选框被选中时,s1向左移动,因为5张图片为一行,
			s1在最前,所以整个图片一起向左移动,实现轮播效果 */
			#r1:checked ~ .s1{
				margin-left: 0;
			}
			#r2:checked ~ .s1{
				margin-left: -20%;
			}
			#r3:checked ~ .s1{
				margin-left: -40%;
			}
			#r4:checked ~ .s1{
				margin-left: -60%;
			}
			#r5:checked ~ .s1{
				margin-left: -80%;
			}
		</style>
	</head>
	<body>
		<div id="banner">
			<div class="sliders">
				<!-- 该单选框用于和label绑定,当点击label时,轮播图发生平移 -->
				<input type="radio" name="r" id="r1" checked="checked">
				<input type="radio" name="r" id="r2">
				<input type="radio" name="r" id="r3">
				<input type="radio" name="r" id="r4">
				<input type="radio" name="r" id="r5">
				<div class="slider s1">
					<img src="./imgs/slider01.jpg" alt="">
				</div>
				<div class="slider">
					<img src="./imgs/slider02.jpg" alt="">
				</div>
				<div class="slider">
					<img src="./imgs/slider03.jpg" alt="">
				</div>
				<div class="slider">
					<img src="./imgs/slider04.jpg" alt="">
				</div>
				<div class="slider">
					<img src="./imgs/slider05.jpg" alt="">
				</div>
			</div>
			<!-- 该单选框用于和label绑定,当点击label时,轮播图发生平移 -->
			<div class="navigation">
				<label for="r1"></label>
				<label for="r2"></label>
				<label for="r3"></label>
				<label for="r4"></label>
				<label for="r5"></label>
			</div>
		</div>
	</body>
</html>

 


更多前端简单小组件尽在主页!喜欢可以收藏哦!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CSS可以通过使用动画和过渡效果来实现轮播图。以下是一种常见的实现方法: 1. 创建一个包含所有轮播项的容器,并设置其宽度为轮播项的宽度的总和,使其能够容纳所有轮播项。 2. 将容器的`overflow`属性设置为`hidden`,以隐藏超出容器宽度的轮播项。 3. 使用`position: relative`将容器设置为相对定位,以便在其中定位轮播项。 4. 将每个轮播项设置为绝对定位,并使用`left`属性将其定位在容器中的正确位置。 5. 使用CSS动画或过渡效果来实现轮播动画。可以使用`@keyframes`关键字定义动画,并使用`animation`属性将动画应用于轮播项。 6. 使用JavaScript或CSS伪类来控制轮播的触发条件,例如鼠标悬停或点击箭头。 下面是一个示例代码,演示了如何使用CSS实现轮播图: ```html <div class="carousel-container"> <div class="carousel-item">轮播项1</div> <div class="carousel-item">轮播项2</div> <div class="carousel-item">轮播项3</div> </div> ``` ```css .carousel-container { width: 300px; overflow: hidden; position: relative; } .carousel-item { position: absolute; width: 300px; height: 200px; left: 0; top: 0; opacity: 0; transition: opacity 0.5s; } .carousel-item.active { opacity: 1; } @keyframes carousel-animation { 0% { transform: translateX(0); } 100% { transform: translateX(-300px); } } .carousel-container:hover .carousel-item { opacity: 0.5; } .carousel-container:hover .carousel-item.active { opacity: 1; } .carousel-container:hover .carousel-item { animation: carousel-animation 5s infinite; } ``` 这段代码创建了一个宽度为300px的轮播容器,其中包含三个轮播项。通过设置`position: absolute`和`left`属性,将轮播项定位在容器中的正确位置。使用`transition`属性和`opacity`属性实现了轮播项的淡入淡出效果。通过使用`@keyframes`定义了一个名为`carousel-animation`的动画,并将其应用于轮播项,实现了轮播动画。最后,使用`:hover`伪类来控制鼠标悬停时的样式变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耀南.

你的鼓励将是我最最最最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值