jQuery仿京东商城楼梯式导航定位菜单


Posted in Javascript onJuly 25, 2016

实现京东商城楼梯式导航定位菜单:滚动定位菜单项和点击定位菜单项!

jQuery仿京东商城楼梯式导航定位菜单

涉及知识点:find()、parent()、offset()、scroll()等jQ函数,请自觉复习各种函数!

html代码:

<!-- 导航菜单 -->
 <div id="menu">
  <ul>
   <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>7F<span>居家</span></li>
   <li>8F<span>母婴</span></li>
   <li>9F<span>食品</span></li>
   <li>10F<span>图书</span></li>
   <li>11F<span>服务</span></li>
  </ul>
 </div>
 <!-- 导航菜单 -->
 <!-- 产品内容 -->
 <div id="content">
  <img src="images/head.png" alt="" style="border:1px solid red;">
  <div class="louti" id="louti1"><img src="images/f1.png" alt=""></div>
  <div class="louti" id="louti2"><img src="images/f2.png" alt=""></div>
  <div class="louti" id="louti3"><img src="images/f3.png" alt=""></div>
  <div class="louti" id="louti4"><img src="images/f4.png" alt=""></div>
  <div class="louti" id="louti5"><img src="images/f5.png" alt=""></div>
  <div class="louti" id="louti6"><img src="images/f6.png" alt=""></div>
  <div class="louti" id="louti7"><img src="images/f7.png" alt=""></div>
  <div class="louti" id="louti8"><img src="images/f8.png" alt=""></div>
  <div class="louti" id="louti9"><img src="images/f9.png" alt=""></div>
  <div class="louti" id="louti10"><img src="images/f10.png" alt=""></div>
  <div class="louti" id="louti11"><img src="images/f11.png" alt=""></div>
 </div>
 <!-- 产品内容 -->
 <!-- 底部 -->
 <div id="footer" class="container"></div>

css代码:

#menu{
  width:32px;height:360px;
  position:fixed;
  top:200px;left:0px;
  display: none;
 }
 #menu ul li{
  width:32px;height:32px;
  list-style-type:none;
  color:#8F8583;
  text-align:center;
  line-height: 32px;
  border-bottom:1px dotted #ddd;
  position:relative;
 }
 #menu ul li span{
  display:block;width:32px;height:32px;
  background:#C81623;
  position:absolute;
  top:0;left:0;
  color:#fff;font-size:12px;
  display: none;
 }
 #menu ul li:hover span{display:block; }
 #menu ul li span.active{color:#C81623;background:#fff;display:block;}
 #content{
  width:1220px;
  margin:0 auto;
 } 
 #footer{width:1220px;height:600px;background:#FE7678;}
 .container{margin:0 auto;}

jQuery代码:

$(function(){
  var _index=0;
  $("#menu ul li").click(function(){
   $(this).find("span").addClass("active").parent().siblings().find("span").removeClass("active");
   _index=$(this).index()+1;
   //通过拼接字符串获取元素,再取得相对于文档的高度
   var _top=$("#louti"+_index).offset().top;
   //scrollTop滚动到对应高度
   $("body,html").animate({scrollTop:_top},500);
  });
  var nav=$("#menu"); //得到导航对象
  var win=$(window); //得到窗口对象
  var sc=$(document);//得到document文档对象。
  win.scroll(function(){

   if(sc.scrollTop()>=600){
   $("#menu").show(); 
   //获取滚动元素对应的索引!!!重难点
   var index=Math.floor(sc.scrollTop()/600);

   $("#menu ul li span").eq(index-1).addClass("active").parent().siblings().find("span").removeClass("active");
   }else{
   $("#menu").hide();
   }
  });
 });

滚动中常用到的jQ写法:

 $("body,html").animate({scrollTop:_top},500);

总结:相对来说,这是个蛮有趣的实践案例,但其中用到比较多的函数,结合了本案例比较特殊的html结构设计,需要理清滚动导航时候的条件判断。 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript demo 基本技巧
Dec 18 Javascript
js取得url地址参数实例
Feb 22 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
Sep 11 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
Feb 16 Javascript
webpack+vue.js实现组件化详解
Oct 12 Javascript
详解node.js平台下Express的session与cookie模块包的配置
Apr 26 Javascript
vue学习笔记之v-if和v-show的区别
Sep 20 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
Sep 26 Javascript
脚手架vue-cli工程webpack的基本用法详解
Sep 29 Javascript
express框架中使用jwt实现验证的方法
Aug 25 Javascript
vue中注册自定义的全局js方法
Nov 15 Javascript
详解Vue Cli浏览器兼容性实践
Jun 08 Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 #Javascript
EasyUI加载完Html内容样式渲染完成后显示
Jul 25 #Javascript
前端微信支付js代码
Jul 25 #Javascript
javascript与jquery动态创建html元素示例
Jul 25 #Javascript
jquery siblings获取同辈元素用法实例分析
Jul 25 #Javascript
js动态添加的DIV中的onclick事件简单实例
Jul 25 #Javascript
js微信分享API
Oct 11 #Javascript
You might like
php数组去重的函数代码
2013/02/03 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
python实现Decorator模式实例代码
2018/02/09 Python
python实现大转盘抽奖效果
2019/01/22 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
Python使用Matlab命令过程解析
2020/06/04 Python
python实现学生成绩测评系统
2020/06/22 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
浅析Python 责任链设计模式
2020/09/11 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
大学毕业登记表自我鉴定
2013/10/09 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
社区服务活动感想
2015/08/11 职场文书
python_tkinter弹出对话框创建
2022/03/20 Python