轮播-----一般轮播

轮播:

1:除了带有current类选择器的li,其余的display都为none;

2:当触发监听事件,把current样式给信号量所在的li

<style type="text/css">
		*{
			margin: 0;
			padding: 0;
		}

		.carrousel{
			width: 750px;/*显示区域*/
			height: 500px;
			margin: 100px auto;
			overflow: hidden;
			position: relative;
			
		}
	
		.carrousel  ul{
			list-style:none;
		}
		.carrousel  ul li{
			float: left;
			display: none;

		}
		.carrousel  .current{
			display: block;
		}
		span{
			display: block;
			width: 37px;
			height: 63px;
			top: 50%;
			position: absolute;
			margin-top: -61px;
			background-image: url(images/banner.png);
			background-repeat: no-repeat;

		}
		 .leftBtn{
		 	left:10px;	
		 	background-position: 0 -430px;  	

		 }
		  .rightBtn{
		 	right:10px;
		 	background-position: 0 -578px;
		 }
		 .carrousel  ol{
		 	width : 120px;
		 	height: 20px;
		 	list-style: none;
		 	position: absolute;
		 	bottom: 10px;
		 	left:50%;
		 	margin-left: -60px;
	
		 }

		 .carrousel  ol li{
		 	float: left;
		 	margin:0 10px;
		 	background-color: skyblue;
		 	width: 10px;
		 	height: 10px;
		 	border-radius: 5px;

		 }
		 .carrousel  ol .cur{
		 	background-color: pink;
		 }
	</style>

	<div class="carrousel" id="carrousel">
			<ul>
				<li class="current">
					<a href="#">
						<img src="images/01.jpg" alt="" />
					</a>
				</li>
				<li>
					<a href="#">
						<img src="images/02.jpg" alt="" />
					</a>
				</li>
				<li>
					<a href="#">
						<img src="images/03.jpg" alt="" />
					</a>
				</li>
				<li>
					<a href="#">
						<img src="images/04.jpg" alt="" />
					</a>
				</li>
				
			</ul>
			<span class="leftBtn" id="leftBtn"></span>
			<span  class="rightBtn" id="rightBtn"></span>

			<ol id="ol">
				<li class="cur"></li>
				<li></li>
				<li></li>
				<li></li>
			</ol>
		
	</div>

原生JS:

	<script type="text/javascript">
		//图片运动原理:点击按钮后,改变信号量的值,赋予current的样式
		var carrousel = document.getElementById("carrousel");
		var ullist = carrousel.getElementsByTagName("li");
		var Lbtn = document.getElementById("leftBtn");
		var Rbtn = document.getElementById("rightBtn");
		var OL = document.getElementById("ol");
		var ollist = OL.getElementsByTagName("li");

		var now = 0;//设置全局信号量,方便访问
		Lbtn.onclick = function() {
			now--;
			if(now < 0){
				now = 3;
			}
			changePic();
		}
		Rbtn.onclick = function() {
			now++;
			if(now > 3){
				now = 0;
			}
			changePic();
		}

		//第一种:设置信号量,防止闭包
		// for(var i= 0 ;i < lis2.length ;i++){
		// 	lis2[i].idx = i;
		// 	lis2[i].onmouseover = function() {
		// 			now = this.idx;//将idx赋值给now,代表现在的i
		// 			changePic();
		// 		}	
		// }

		//第二种:IIFE表达式
		for(var i= 0 ;i < ollist.length ;i++){
			(function(i){
			    ollist[i].onmouseover = function() {//为圆点设置监听
					now = i;//把当前的i赋给now
					changePic();
				}
			})(i);			
		}

	//业务:改变图片,圆点,排他原理
		function changePic() {
			for(var i= 0 ; i < ullist.length ;i++){
				ullist[i].className = "";
			}
			ullist[now].className = 'current';

			for(var j= 0 ; j  < ollist.length ; j++){
				ollist[j].className = "";
			}
			ollist[now].className = 'cur';
		}

	</script>

JQ:

$lis = $(".carrousel ul li");
		$leftBtn = $(".leftBtn");
		$rightBtn = $(".rightBtn");
		$circles = $("ol li");

		var idx = 0;

	setInterval(rightHandle ,2000);

	 $rightBtn.click(rightHandle);	
	
		function rightHandle() {
				idx++;
				if(idx> 4){
					idx = 0;
				}
				change();
			}

	$leftBtn.click(function() {
			idx--;
			if(idx < 0){
				idx = 4;
			}
			change();
		});

		$circles.each(function(i) {
			$(this).mouseenter(function() {
				idx = i;
				change();
			});
		});
		
		function change(){
			$lis.eq(idx).addClass('current').siblings().removeClass('current');
			$circles.eq(idx).addClass('cur').siblings().removeClass('cur');
		}
			

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值