<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>17.17jQuery滚动楼层效果</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
font-family: 'microsoft yahei';
}
#loutinav {
width: 35px;
position: fixed;
top: 100px;
left: 50px;
border: 1px solid #ddd;
display: none;
}
#loutinav ul li {
width: 35px;
height: 32px;
border-bottom: 1px dotted #DDDDDD;
list-style: none;
font-size: 12px;
text-align: center;
position: relative;
cursor: pointer;
padding: 10px 0;
background: #918888;
color: #fff;
}
#loutinav ul li span {
width: 35px;
height: 32px;
padding: 10px 0;
position: absolute;
top: 0;
left: 0;
}
#loutinav ul li.last {
background: #5e4a4a;
color: #fff;
border-bottom: 1px solid #ddd;
}
#loutinav ul li.active span {
background: #c00;
color: #fff;
display: block;
}
#loutinav ul li:hover span {
background: #c00;
color: #fff;
display: block;
}
#header {
width: 1000px;
height: 1000px;
background: #cc6633;
margin: 0 auto;
font-size: 50px;line-height: 1000px;text-align: center;
color: #000;
}
#main {
width: 1000px;
background: #66ff66;
margin: 0 auto;
}
#main .louti {
height: 600px;
width: 1000px;
font-size: 50px;
color: #fff;
font-weight: bold;
text-align: center;
line-height: 600px;
}
#footer {
width: 1000px;
height: 400px;
background: red;
margin: 0 auto;
font-size: 50px;line-height: 400px;text-align: center;
color: #000;
}
</style>
</head>
<body>
<div id="loutinav">
<ul>
<li class="active"><span>服装百货</span> </li>
<li><span>鞋帽箱包</span> </li>
<li><span>电脑手机</span> </li>
<li><span>数码家电</span> </li>
<li><span>汽车配件</span> </li>
<li><span>母婴食品</span> </li>
<li><span>家居洗护</span> </li>
<li><span>图书医药</span> </li>
<li><span>运动饰品</span> </li>
<li class="last">回到顶部</li>
</ul>
</div>
<!--楼层内容开始-->
<div id="header">
向下滚动鼠标查看效果
</div>
<div id="main">
<div class="louti" style="background: #cc0033;">
服装百货
</div>
<div class="louti" style="background: #999933;">
鞋帽箱包
</div>
<div class="louti" style="background: #ccff33;">
电脑手机
</div>
<div class="louti" style="background: #006633;">
数码家电
</div>
<div class="louti" style="background: #6666cc;">
汽车配件
</div>
<div class="louti" style="background: #ff6600;">
母婴食品
</div>
<div class="louti" style="background: #ffff00;">
家居洗护
</div>
<div class="louti" style="background: #3333ff;">
图书医药
</div>
<div class="louti" style="background: #ff00cc;">
运动饰品
</div>
</div>
<div id="footer">
网站底部
</div>
<!--楼层内容结束-->
<script src="js/jquery-1.8.3.min.js"></script>
<script src="js/js.js"></script>
</body>
</html>
//jQuery代码
$(function(){
//1.楼梯什么时候显示,800px scroll--->scrollTop
$(window).on('scroll',function(){
var $scroll=$(this).scrollTop();
if($scroll>=800){
$('#loutinav').show();
}else{
$('#loutinav').hide();
}
//4.拖动滚轮,对应的楼梯样式进行匹配
$('.louti').each(function(){
var $loutitop=$('.louti').eq($(this).index()).offset().top+400;
//console.log($loutitop);
if($loutitop>$scroll){//楼层的top大于滚动条的距离
$('#loutinav li').removeClass('active');
$('#loutinav li').eq($(this).index()).addClass('active');
return false;//中断循环
}
});
});
//2.获取每个楼梯的offset().top,点击楼梯让对应的内容模块移动到对应的位置 offset().left
var $loutili=$('#loutinav li').not('.last');
$loutili.on('click',function(){
$(this).addClass('active').siblings('li').removeClass('active');
var $loutitop=$('.louti').eq($(this).index()).offset().top;
//获取每个楼梯的offsetTop值
$('html,body').animate({//$('html,body')兼容问题body属于chrome
scrollTop:$loutitop
})
});
//3.回到顶部
$('.last').on('click',function(){
$('html,body').animate({//$('html,body')兼容问题body属于chrome
scrollTop:0
})
});
})
页面效果
初始化页面

滚动鼠标

单击汽车配件楼层


