jQuery实现楼层联动

1、复制代码并运行,即可显示效果

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!-- 路径采用百度CDN -->
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<style>
	*{
		margin: 0;
		padding: 0;
		font-size:12px;
	}
	ul{
		list-style:none;
	}
	.floorNav{
		width:30px;
		height:auto;
		border:1px solid #ccc;
		position:fixed;
		top:100px;
		left:30px;
	}
	.floorNav li{
		width:30px;
		height:30px;
		line-height:30px;
		text-align:center;
		position:relative;
		border-bottom:1px solid #ccc;
	}
	.floorNav li.hover span{
		display:block;
		background: #f30;
		color:#fff;
	}
	.last{
		border:none;
		background: #f30;
		color:#fff;
	}
	.floorNav li span{
		width:30px;
		height:30px;
		display:none;
		position:absolute;
		top:0;left:0;
		background: #f30;
		color:#fff;
	}
	.floorNav li span.active{
		display:block;
		background: #fff;
		color:#f00;
	}
	.floorNav li.hover span.active{
		background: #f30;
		color:#fff;
	}
	#header,#footer{
		width:800px;
		height:1000px;
		margin:0 auto;
		background: #ff7;
	}
	#main{
		width:800px;
		height:auto;
		margin:0 auto;
	}
	#main .floor{
		width:800px;
		height:600px;
		line-height:600px;
		text-align:center;
		font-size:50px;
	}
</style>
</head>
<body>
	<!-- 楼层导航 -->
	<ul class="floorNav">
		<li>1F<span>服饰</span></li>
		<li>2F<span>手机</span></li>
		<li>3F<span>数码</span></li>
		<li>4F<span>家电</span></li>
		<li>5F<span>美妆</span></li>
		<li>6F<span>户外</span></li>
		<li class="last">Top</li>
	</ul>
	<!-- 楼层开始 -->
	<div id="header"></div>
	<div id="main">
		<div class="floor" style="background: #f34;">服饰</div>
		<div class="floor" style="background: #f0f;">手机</div>
		<div class="floor" style="background: #345;">数码</div>
		<div class="floor" style="background: #987;">家电</div>
		<div class="floor" style="background: #a6b;">美妆</div>
		<div class="floor" style="background: #0f9;">户外</div>
	</div>
	<div id="footer"></div>
<script>
	//添加鼠标滑过事件
	$('.floorNav li').not(":last").bind({
		"mouseover":function(){
			$(this).addClass('hover');
		},
		"mouseout":function(){
			$(this).removeClass('hover')
		},
		"click":function(){
			//获取当前li的下标
			var index = $(this).index();
			var sT = $(".floor").eq(index).offset().top;
			$('html,body').stop().animate({"scrollTop":sT});
			$(this).find('span').addClass('active');
			$(this).siblings().find('span').removeClass('active');
		}
	});
	//楼层滚动事件
	$(window).scroll(function(){
		var sT = $(this).scrollTop();
		$('.floor').each(function(index,ele){
			var _top = $(ele).offset().top;
			var fH = $(ele).height()/2;
			if(sT-_top >= -fH && sT-_top <= fH){
				$(".floorNav li").not(":last").find('span').removeClass('active');
				$(".floorNav li").eq(index).find("span").addClass('active');
			}
		})	
	})
</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值