JavaScript简单轮播图

JavaScript利用display属性做轮播图,代码及其简单!!!

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			body,div,img,ul,li{
				margin: 0px;
				padding: 0px;
			}
			div{
				width: 500px;
				height: 300px;
				margin: 100px auto;
				position: relative;
			}
			div img{
				height: 300px;
				width: 500px;
				position: absolute;
				display:none;
			}
			div img:nth-child(1){
				display: block;
			}
			ul li{
				list-style: none;
				height: 15px;
				width: 15px;
				background:gray;
				border-radius: 50%;
				float: left;
				position: relative;
				z-index: 1;
				top: 260px;
				left: 35%;
				margin:5px;
			}
			ul li:nth-child(1){
				background: red;
			}
			.left{
					width: 30px;
					height: 50px;
					background: rgba(0,0,0,0.5);
					text-align: center;
					font-size: 26px;
					color: white;
					line-height: 50px;
					position: absolute;
					top:130px;
					left: 0px;
					border: 0;
					outline: none;
				}
			.right{
					width: 30px;
					height: 50px;
					background: rgba(0,0,0,0.5);
					text-align: center;
					font-size: 26px;
					color: white;
					line-height: 50px;
					position: absolute;
					top:130px;
					right: 0px;
					border: 0;
					outline: none;
				}
		</style>
	</head>
	<body>
		<div id="box">
			<img class="img" src="img/1.jpg">
			<img class="img" src="img/2.jpg">
			<img class="img" src="img/3.jpg">
			<img class="img" src="img/4.jpg">
			<img class="img" src="img/5.jpg">
			<img class="img" src="img/6.jpg">
			<ul>
				<li class="dot"></li>
				<li class="dot"></li>
				<li class="dot"></li>
				<li class="dot"></li>
				<li class="dot"></li>
				<li class="dot"></li>
			</ul>
			<button class="left" οnclick="left()"><</button>
			<button class="right" οnclick="ChangeImg()">></button>
		</div>
		<script>
			//思路:
			//1.图片每隔一定时间切换一次
			//2.点击右侧按钮,升序切换图片
			//3.点击左侧按钮,降序切换图片
			//4.鼠标移上,轮播暂停
			//5.鼠标移开,轮播继续
			
			
			var index = 0;
		    var list = 0;
		    var a = document.getElementsByClassName("img");//取所有img标签
		    var b = document.getElementsByClassName("dot");//取所有li标签
		    var div = document.getElementById("box");//取div(大盒子)标签
		    console.log(a);
		    console.log(b);
		    //自动轮播事件和鼠标点击右侧事件
		    function ChangeImg(){
		        index++;
		        list++;
		        if(index >= a.length){
		        	index = 0;//当index大于或者等于img长度时,index为0
		        }
		        for(var i = 0;i < a.length;i++){//遍历所有img
		            a[i].style.display = 'none';//把所有img样式设置为none
		        }
		        a[index].style.display = 'block';//把下标为index的img标签样式设置为block
		        
		        if(list >= b.length){
		   			list = 0;//当list大于或者等于img长度时,list为0
		   		}
		        for(var j = 0;j < b.length;j++){//遍历所有li
		   			b[j].style.background = 'gray';//把所有li标签样式设置为白色
		   		}
		   		b[list].style.background = 'red';//把下标为list的li标签设置为red
		    }
		    
		    //鼠标点击左侧事件
		    function left(){
				index--;
				list--;
				if(index < 0){
					index = a.length-1;//当index小于0时,index为img标签的长度减一
				}
				for(var i = 0;i < a.length;i++){
					a[i].style.display = "none";
				}
				a[index].style.display = "block";
				if(list < 0){
		   			list = b.length-1;//当list小于0时,list为li标签的长度减一
		   		}
		        for(var j = 0;j < b.length;j++){
		   			b[j].style.background = 'gray';
		   		}
		   		b[list].style.background = 'red';
			}
		    
		    //定时器
		    var timer = setInterval(ChangeImg,2000);
			div.onmouseover = function(){//定义鼠标移入事件,当鼠标移入div区域,轮播暂停
		    	clearInterval(timer);
		    }
		    div.onmouseleave = function(){//定义鼠标移出事件,当鼠标移出div区域,轮播继续
		    	timer = setInterval(ChangeImg,2000);
		    }
		</script>
	</body>
</html>

鼠标右击事件和自动轮播都是升序,所有写在一起,而鼠标左击事件是降序,稍微修改一下就可以,并不是很复杂。
效果图如下:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值