左侧浮动菜单,跟谁鼠标滚动
XML/HTML Code
- <div class="nav">nav</div>
- <div class="banner">banner</div>
- <div class="box">
- <ul class="fl_l" style="position: fixed; top: 10px;">
- <li class=""><a href="##">菜单1</a></li>
- <li class="active"><a href="##">菜单2</a></li>
- <li><a href="##">菜单3</a></li>
- <li><a href="##">菜单4</a></li>
- </ul>
- <ul class="fl_r">
- <li style="height: 600px;">菜单1内容</li>
- <li style="height: 600px;">菜单2内容</li>
- <li style="height: 400px;">菜单3内容</li>
- <li style="height: 500px;">菜单4内容</li>
- </ul>
- <div style="clear: both;"></div>
- </div>
JavaScript Code
- <script type="text/javascript">
- $(function(){
- //设置标杆
- var _line=parseInt($(window).height()/3);
- $(window).scroll(function(){
- //滚动730px,左侧导航固定定位
- if ($(window).scrollTop()>730) {
- $('.fl_l').css({'position':'fixed','top':10})
- }else{
- $('.fl_l').css({'position':'','top':''})
- };
- $('.fl_l li').eq(0).addClass('active');
- //滚动到标杆位置,左侧导航加active
- $('.fl_r li').each(function(){
- var _target=parseInt($(this).offset().top-$(window).scrollTop()-_line);
- var _i=$(this).index();
- if (_target<=0) {
- $('.fl_l li').removeClass('active');
- $('.fl_l li').eq(_i).addClass('active');
- }
- //如果到达页面底部,给左侧导航最后一个加active
- else if($(document).height()==$(window).scrollTop()+$(window).height()){
- $('.fl_l li').removeClass('active');
- $('.fl_l li').eq($('.fl_r li').length-1).addClass('active');
- }
- });
- });
- $('.fl_l li').click(function(){
- $(this).addClass('active').siblings().removeClass('active');
- var _i=$(this).index();
- $('body, html').animate({scrollTop:$('.fl_r li').eq(_i).offset().top-_line},500);
- });
- });
- </script>
原文地址:http://www.freejs.net/article_daohangcaidan_672.html