jQuery仿天猫左侧导航滚动效果

jQuery仿天猫左侧导航滚动效果

今天我们要实现的效果是:1、当点击菜单项时,可以平滑地滚动到页面指定的位置。2、当页面滚动时,菜单也随着滚动。3、当页面滚动到菜单项对应位置时,当前菜单项为选中样式。

淘建站为您提供更多_导航菜单_悬浮层_导航_滚动,在此特别感谢您对我们的支持与厚爱!

查看演示

演示不了,点击反馈

加入收藏

下载 449 次

打赏作者

觉得不错,可打赏下作者

下载资源

免费共享

特别说明:本站资源来自网友发布分享,仅供学习与参考,请勿用于商业用途,若有侵权请联系删除(272966172@qq.com)。

HTML

我们设置5个导航菜单,对应5个区域,html代码如下:

<ul class="nav"> 
   <li><a class="pro">网站模板</a></li> 
   <li><a class="news">网页特效</a></li> 
   <li><a class="ser">字体下载</a></li> 
   <li><a class="con">网页源码</a></li> 
   <li><a class="job">图标下载</a></li> 
</ul> 
<div id="pro" class="box"> 
   <h3>网站模板</h3> 
  </div> 
  <div id="news" class="box"> 
   <h3>网页特效</h3> 
  </div> 
  <div id="ser" class="box"> 
   <h3>字体下载</h3> 
  </div> 
  <div id="con" class="box"> 
   <h3>网页源码</h3> 
  </div> 
  <div id="job" class="box" style="height:880px"> 
   <h3>图标下载</h3> 
</div>

当单击菜单项时,我们可以获取到当前class,根据class我们可以算出到顶端的距离。接着用动画效果滑动到菜单对应指定位置。最后记得选中当前点击菜单,也就是加上“.cur”。

若是您想要其他动画效果滚动,可以参考 jquery.easing动画插件。

$(function(){ 
    $(".nav li a").click(function() { 
        var el = $(this).attr('class'); 
         $('html, body').animate({ 
             scrollTop: $("#"+el).offset().top 
         }, 300); 
        //切换菜单样式 
        $(this).addClass("cur").parent().siblings().find("a").removeClass("cur"); 
     }); 
});

还有一点,当滚动条达到某个菜单对应的节点,我们也要对此作出反应,告知用户正在浏览对应的是页面哪个节点的内容。

首先获取每个菜单对应的节点与页面顶部的距离,然后当页面滚动scroll时,获取页面滚动条的便宜距离scroH,最后将这两个值进行比较,设置对应的菜单项为选中状态。

$(function(){ 
    var pro_top = $("#pro").offset().top; //距顶端的距离 
    var news_top = $("#news").offset().top; 
    var ser_top = $("#ser").offset().top; 
    var con_top = $("#con").offset().top; 
    var job_top = $("#job").offset().top; 
 
    $(window).scroll(function(){//滚动时触发
        var scroH = $(this).scrollTop(); //获取滚动条位置 
        if(scroH>=job_top){ 
            set_cur(".job");//设置选中状态 
        }else if(scroH>=con_top){ 
            set_cur(".con"); 
        }else if(scroH>=ser_top){ 
            set_cur(".ser"); 
        }else if(scroH>=news_top){ 
            set_cur(".news"); 
        }else if(scroH>=pro_top){ 
            set_cur(".pro"); 
        } 
    }); 
    ... 
});

set_cur()设置当前菜单选中状态:

function set_cur(n){ 
    if($(".nav a").hasClass("cur")){ 
        $(".nav a").removeClass("cur"); 
    } 
    $(".nav a"+n).addClass("cur"); 
}

最后还有一个问题需要处理:当浏览器窗口宽度大于内容区和菜单宽度时,保持菜单悬浮在内容区左侧。

$(window).resize(function(){//窗口大小发生变化 
  navpos(); 
}); 
//根据宽度设置菜单距左边的距离
function navpos(){ 
    var offset = $("#main").offset().left; 
    var nav_w = $(".nav").outerWidth(); 
    var left = offset-nav_w; 
     
    if(left>10){ 
        $(".nav").css("margin-left","-170px"); 
    }else{ 
        $(".nav").css("margin-left",-(160+left)+"px"); 
    } 
}

最后在页面加载完,初始化菜单位置。

$(function(){ 
    navpos(); 
});

若是你对平滑滚动还有疑问,可以参考jQuery平滑滚动到页面指定位置

声明:本资料由淘建站会员提供,如转载注明来源,资料来源淘建站免费素材库:https://www.taojz.cn/texiao/21.html
jQuery仿天猫左侧导航滚动效果 希望对你有帮助,感谢您的支持!
  • jQuery页面滚动显示浮动菜单栏锚点定位效果

    jQuery页面滚动显示浮动菜单栏锚点定位效果

  • js css3鼠标悬停文字导航菜单下划线效果

    js css3鼠标悬停文字导航菜单下划线效果

  • 滚动的齿轮动画

    滚动的齿轮动画

  • 底部导航菜单【动态波浪效果】

    底部导航菜单【动态波浪效果】

  • swiper滚动天气效果

    swiper滚动天气效果

  • 纯css3仿GPS地图导航定位动画特效

    纯css3仿GPS地图导航定位动画特效

  • css3滚动的圆球动画特效

    css3滚动的圆球动画特效

  • html5左侧固定导航点击页面切换动画特效

    html5左侧固定导航点击页面切换动画特效

  • html5文字按钮导航波浪动画特效

    html5文字按钮导航波浪动画特效

  • jquery.superfish.js导航菜单插件制作无限极菜单

    jquery.superfish.js导航菜单插件制作无限极菜单

  • css3文字导航鼠标悬停气泡动画特效

    css3文字导航鼠标悬停气泡动画特效

  • DIV+CSS制作有趣的页面滚动让猫奔跑的动画

    DIV+CSS制作有趣的页面滚动让猫奔跑的动画

  • 留言(0)
    头像
     阿里云限量代金券,戳我领取
    1 2