JS实现图片轮播效果


看了教程后,又写了一个图片轮播页面。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JS图片轮播作业</title>
</head>
<style>
	*{
		margin:0;
		padding:0;
	}
	.wrap{
		width:500px;
		height:500px;
		margin:70px auto;
		border:solid 15px gray;
		position:relative;
	}
	.img{
		width:500px;
		height:500px;
		clear:both;

	}
	.div_btn{
		margin:30px auto;
		width:250px;
		height:50px;
		
	}
	.btn1,.btn2{
		width:100px;
		height:30px;
		text-align:center;
		line-height:25px;/*这里用30px为什么不能垂直居中呢??*/
		font-size: 20px;
		color:white;
		background:#b2e281;
	}
	.left{
		float:left;
		clear:both;
	}
	.right{
		float:right;

	}
	.prev,.next  {
		width:40px;
		height:40px;
		margin-top:250px;
		border:solid 1px gray;
		font-size: 25px;
		position:absolute;
		top:0px;
		text-decoration:none;
		color:gray;
		text-align:center;
		line-height:40px;
		background: white;
		filter:alpha(opacity=80%);
		opacity:0.8;
	}
	a:hover{
		filter:alpha(opacity=30%);
		opacity:0.3;
	}
	
	.prev{
		left:10px;
	}
	.next{
		right:10px;
	}
	.p_top,.p_bottom{
		width: 500px;
		height:30px;
		background: black;
		filter:alpha(opacity=60%);
		opacity:0.6;
		position:absolute;
		color:white;
		text-align:center;
		line-height: 30px;
	}
	.p_top{
		position:absolute;
		top:0;
		left:0;
	}
	.p_bottom{
		
		bottom:0;
		left:0;
	}
	#span1{
		position: absolute;
		top:-70px;
		text-align:center;
		line-height:30px;
		width:400px;
		height:30px;
		left:50px;
	}
</style>
<script>
	window.onload = function(){
		var oPrev = document.getElementById('prev');//前一张图片按钮声明
		var oNext = document.getElementById('next');//后一张图片按钮声明
		var oP_top = document.getElementById('p_top');//顶部显示的图片张数声明
		var oP_bottom = document.getElementById('p_bottom');//底部显示的图片信息声明
		var oImg = document.getElementById('img');//插入图片变量声明
		var oBtn1 = document.getElementById('btn1');//循环播放按钮
		var oBtn2 = document.getElementById('btn2');//顺序播放按钮
		var oSpan = document.getElementById('span1');//初始化时候提示文字

		var arrUrl = ['http://t-1.tuzhan.com/71af8ce29e83/c-2/l/2014/01/19/01/dea700465eb94b01b6e68407182e3a99.jpg','http://gb.cri.cn/mmsource/images/2015/03/28/74/14921801016817831234.jpg','http://attachments.gfan.com/attachments2/day_110315/110315113890464bfbd7af0262.jpg','http://img8.zol.com.cn/bbs/upload/24289/24288117_0800.jpg'];
		var arrText = ['清纯AK美女','迷人眼神','暴力美学','狙击步'];
		var num = 0;//声明一个初始值
		var onOff = true;
		function fnTab(){
			oP_top.innerHTML = num + 1 + '/' + arrUrl.length;
			oP_bottom.innerHTML = arrText[num];
			oImg.src = arrUrl[num];
		}//将要经常执行的几个步骤写在一个函数里,便于以后调用
		fnTab();//初始化,先执行一次函数,以显示图片张数和信息
		oBtn1.onclick = function(){
			oSpan.innerHTML = '图片可以循环播放';
			onOff = true;//利用布尔值,来对循环方式进行判别执行,此时为不循环

		};
		oBtn2.onclick = function(){
			oSpan.innerHTML = '图片不可以循环播放';
			onOff = false;//此时布尔值决定按照顺序播放
		};
		
		
		oPrev.onclick = function(){
			num --;
			if(num == -1){
				if(onOff){
					num = arrUrl.length - 1;
				}
				else{
					alert('这已经是第一张图片了,不能再往前了。。');
					num = 0;//这里要指定num值,否则num会一直减小
				}
				
			}
			fnTab();
		};//每次匿名函数后边这个分号要记得写

		oNext.onclick = function(){
			num ++;
			if(num == 4){
				if(onOff){
					num = 0;
				}
				else{
				alert('这已经是最后一张图片啦');
				num = 3;//这里注意还要再次指定num值,否则num会一直增加

			}
			}
			
			fnTab();
		};

	}
</script>
<body>
	<div class="div_btn">
		<input type="button" value="循环播放" id="btn1" class="btn1 left" />
		<input type="button" name="" value="顺序播放" id="btn2" class="btn2 right"/>
		
	</div>
	<div id="wrap" class="wrap">
		<span id="span1">图片轮播有两种方式,一种循环,一种不循环</span>
		<a href="javascript:;" id="prev" class="prev"><</a>
		<a href="javascript:;" id="next" class="next">></a>
		<p class="p_top" id="p_top">图片张数</p>
		<p class="p_bottom" id="p_bottom">文字</p>
		<img src="img/1.jpg" alt="图片" class="img" id="img">
	</div>
</body>
</html>
这次注意写了很多注释,确实任重而道远。写的过程中,第一次深刻理解了利用布尔值的重要性,通过布尔值的选取,来决定轮播的方式。

效果图:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值