<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="Scripts/jquery-1.7.1.min.js"></script> <script type="text/ecmascript"> //使用说明 没添加一个层 就在电梯层添加一个li 就行 $(document).scroll(function () { var div_height = 0;//存取div高度 var index = 0;//存储点击的li的缩影 var scroll_index=0;//存储滚动条在哪一个楼层的索引 var divs = $("body>div");//获取body下div的集合 var scroll_top = $("body").scrollTop();//获取滚动条的位置 // 获取滚动区域的高度 滚动条距离顶端的高度 屏幕的高度 页面可见区域的高度 //$("#txt").val(document.body.scrollHeight + "--" + scroll_top+"-"+screen.height+"-"+document.documentElement.clientHeight); for (var i = 1; i <= divs.length; i++) { div_height += parseInt(divs.eq(i).height()); if ((scroll_top + document.documentElement.clientHeight) == document.documentElement.scrollHeight) { $("ul li:last").addClass("show").siblings().removeClass("show"); } else if(document.body.scrollTop==0){ $("ul li:first").addClass("show").siblings().removeClass("show"); } else if ((scroll_top - div_height) >= 0 && (scroll_top - div_height) < parseInt(divs.eq(i + 1).height())) { scroll_index = i; $("ul li").eq(i).addClass("show").siblings().removeClass("show"); break; } } if (scroll_top >= divs.eq(1).height()) {//当滚动条的位置超过第一个层的高度时就显示楼梯 $("#show").stop().animate({ "left": "0px" }, 200); } else { $("#show").stop().animate({ "left": "-40px" }, 200); } }) $(function () { $("ul li").click(function () { index = ($(this).index() + 1); var divs = $("body>div"); var scrollTops = 0; // 计算出滚动的高度 for (var i = 1; i < index; i++) { scrollTops += parseInt(divs.eq(i).height()); } $("body").stop().animate({ "scrollTop": scrollTops }, 2000) }) }) </script> <style type="text/css"> * { margin: 0; padding: 0; } ul { list-style: none; } ul li { height: 30px; border-bottom: 1px solid black; background-color: #2fb44e; } ul li.show.one { background-color: #6b54b9; } ul li.show.two { background-color: #ff6a00; } ul li.show.three { background-color: #808080; } ul li.show.four { background-color: #ffd800; } ul li.show.five { background-color: #b6ff00; } ul li.show.six { background-color: #971717; } ul li.show.seven { background-color: #44b693; } ul li.show.eight { background-color: #6b54b9; } ul li.show.nine { background-color: #6b54b9; } </style> </head> <body style=""> <div style="z-index: 1; position: fixed; top: 40%; left: -40px; width: 40px;" id="show"> <ul> <li class="one">111F</li> <li class="two">222F</li> <li class="three">333F</li> <li class="four">444F</li> <li class="five">555F</li> <li class="six">666F</li> <li class="seven">777F</li> <li class="eight">888F</li> <li class="nine">999F</li> <li class="nine">1010</li> </ul> </div> <div style="height: 189px; background-color: #ff6a00"> 11 1111111111111111111111111111111111111111111111 </div> <div style="height: 300px; background-color: #808080"><a name="2">22222222222222222</a></div> <div style="height: 215px; background-color: #793535"><a name="3">33333333333333333</a></div> <div style="height: 30px; background-color: #b6ff00"><a name="4">444444444444444</a></div> <div style="height: 595px; background-color: #652626"><a name="5">555555555555555</a></div> <div style="height: 300px; background-color: #73268a"><a name="6">666666666666666</a></div> <div style="height: 200px; background-color: #2143a3"><a name="7">777777777777777</a></div> <div style="height: 455px; background-color: #2fb44e"><a name="7">87888888888888</a></div> <div style="height: 300px; background-color: #7621a9"><a name="7">999999999999</a></div> <div style="height: 365px; background-color: #b6ff00"><a name="7">1000000000</a></div> <div style="height: 200px; background-color: #4b4a5b">bottom</div> </body> </html>