JS中的一个轮播图小demo

版权声明:版权所有,违者必究 https://blog.csdn.net/weixin_39921821/article/details/87873919

一、手动轮播

1.首先你得准备几张规格,大小相同的图片(大于二张哦),命名有规律一点就ok了,下面我的图片位置及命名:

2.下面直接上小demo的代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>切换图片</title>
		<style>
			div{
				border: 1px solid white;
				width: 500px;
				height: 350px;
				margin: auto;      /*页面居中对齐*/
				text-align: center;  /*文字居中*/
			}
		</style>
		<script>
			var i=1; //从第一张开始
			function changeImg(){
			     i++;    //var i++;这样不对,不能重新定义,只需++就好
				document.getElementById("img1").src="../../img/"+i+".jpg";  //首先每个轮播图的命名都是有规律的,这样方便循环使用
				if(i==3){  //图片循环完了进行初始化
					i=0;
				}
			}
		</script>
	</head>
	<body>
		<div>
			<!--我的这个demo是手动的,自动可以加自动函数-->
			<input type="button" value="下一张"  onclick="changeImg()"/> 
			<!--图片路径根据自己实际情况来,在这显示的写第一张就行,其他的手动时递增就ok,所以说这个图片命名要有规律些,这样好处理-->
			<img src="../../img/1.jpg" width="100%" height="100%" id="img1" />
		</div>
	</body>
</html>

3.效果图:

 

 

总结:手动点击时才能改换图片;重要的还是当图片循环完需要初始化,及又要从第一张开始;如果要使自动轮播,需要调用函数setInterval("显示图片的函数",设置的间隔时间);当然这个是在当你加载这个页面的时候才触发的,虽然简单,哈哈,不足之处,请多指教!

二、自动轮播

前提是我调用了JS中的setInterval("显示图片的函数",设置的间隔时间)方法,用来做定时器,其实还可以用setTimeout()方法,这里不做细解释。下面来,不懂的可以查看JS的API

直接上代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			//初始化方法
			function init(){
				/*setInterval功能用于循环,常常用于播放动画,或者时间显示。
                                 是在指定的周期内。按照参数的函数名去运行一个函数,它有两种语法。
                                  一种是基本用法,默认的语法。还有一种是专家模式的语法。*/
				window.setInterval("changeImg()",3000); //或者setInterval("changeImg()",3000);都可以
			}
			//书写函数
		    var i=0;
			function changeImg(){
				i++;
				//获取图片位置,并设置src属性值
				document.getElementById("img1").src="../img/"+i+".jpg";
				if(i==3){
					i=0;
				}
			}
		</script>
	</head>
	<body onload="init()">
		   <!--轮播图部分-->
			<div id="">
				<img src="../img/1.jpg" width="100%" id="img1"/>
			</div>
	</body>
</html>

 效果图:

注:我是在前面手动的基础上加了定时器,这里只附上一张图,其他的你自己可以下个小demo测试一下 。

猜你喜欢

转载自blog.csdn.net/weixin_39921821/article/details/87873919