js复杂?插件运用不熟悉?教你用css动画实现轮播的两种方法

1.了解与动画相关的函数

        animation 动画
        animation-name: ; 动画名字
        animation-duration: ; 动画持续时间
        animation-timing-function: ; 动画效果
        animation-delay: ; 延迟时间
        animation-iteration-count: ; 循环次数 infinite 无数次
        animation-fill-mode: ; 最后停留位置
        animation-play-state: ;  播放时暂停
        在实际应用中我们可以直接在animation后面直接写我们想要的效果,不用一条一条设置,初学者可以一个一个试试哦!

2.第一种方法实现轮播

        这种办法就是将每张轮播的图片定义一个个关键帧(包括开始时间与结束时间),再添加移动效果实现轮播效果,话不多说上代码吧。

HTML代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
		   .wrapper{
			   width: 757px;
			   height: 500px;
			   overflow: hidden;
			   margin: 0 auto;
		   }
		   .box{
			   width:3028px;
			   animation: mybox 15s infinite;
		   }
		   .box img{
			   width: 757px;
			   height: 500px;
			   float: left;
		   }
		   
		   @keyframes mybox{
		   	  0%{
				  transform: translate(-0px);
			  }
			  10%,33.3%{
			  	 transform: translate(-757px);
			  }
			  40%,100%{
			  	 transform: translate(-1514px);
			  }
			 80%,100%{
			  	 transform: translate(-2271px);
			  }
		   }
		</style>
	</head>
	<body>
		<div class="wrapper">
			<div class="box">
				<img src="img/3.png" >
				<img src="img/4.png" >
				<img src="img/5.png" >
				<img src="img/3.png" >
			</div>
		</div>
	</body>
</html>

效果展示

      

总结 

   这种方式需要一个个设置关键帧,有一个过渡效果,但是要对图片进行计算。

3.第二种方法实现轮播

  这种方法需要我们用到步进。

html代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.wrapper{
				width:757px;
				height:500px;
				overflow: hidden;
				margin:0 auto;
			}
			.box{
				width:2271px;
				animation:myfirst 5s infinite steps(3);
			}
			img{
				width: 757px;
				height: 500px;
				float:left;
			}
			@keyframes myfirst{
				from{
					transform: translate(0);
				}
				to{
					transform: translate(-2271px);
				}
			}
		</style>
	</head>
	<body>
		<div class="wrapper">
			<div class="box">
				<img src="./img/3.png" alt="">
				<img src="./img/4.png" alt="">
				<img src="./img/5.png" alt="">
			</div>
		</div>
	</body>
</html>

效果展示

总结 

   这种方式设置了步进,没有过渡效果,不需要繁琐的计算。

   喜欢的可以关注哦,后期会更新更多的实现轮播的方式。

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现轮播功能的方法有很多种,常见的一种是使用JavaScriptCSS,具体步骤如下: 1. HTML结构:先创建一个包含轮播图片的容器和一个用于展示当前图片的标签。 ```html <div class="slider"> <img src="img1.jpg" alt="image1"> <img src="img2.jpg" alt="image2"> <img src="img3.jpg" alt="image3"> </div> <div class="slider-nav"></div> ``` 2. CSS样式:设置轮播容器的宽度和高度,以及每张图片的样式,同时隐藏除第一张图片以外的其它图片。 ```css .slider { width: 100%; height: 400px; position: relative; overflow: hidden; } .slider img { width: 100%; height: 100%; position: absolute; top: 0; left: 0; opacity: 0; transition: opacity .5s ease-in-out; } .slider img:first-child { opacity: 1; } ``` 3. JavaScript实现轮播:通过JavaScript控制图片的显示和隐藏,以及添加导航按钮。 ```javascript var slider = document.querySelector('.slider'); var sliderImages = slider.querySelectorAll('img'); var sliderNav = document.querySelector('.slider-nav'); // 添加导航按钮 for (var i = 0; i < sliderImages.length; i++) { var navItem = document.createElement('span'); navItem.dataset.index = i; navItem.addEventListener('click', function() { showImage(this.dataset.index); }); sliderNav.appendChild(navItem); } // 显示图片 function showImage(index) { for (var i = 0; i < sliderImages.length; i++) { if (i == index) { sliderImages[i].style.opacity = 1; } else { sliderImages[i].style.opacity = 0; } } } // 自动轮播 var currentIndex = 0; setInterval(function() { currentIndex++; if (currentIndex >= sliderImages.length) { currentIndex = 0; } showImage(currentIndex); }, 3000); ``` 通过上述步骤,即可实现一个简单的轮播功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值