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 相关文章推荐
Ucren Virtual Desktop V2.0
Nov 07 Javascript
js 页面关闭前的出现提示的实现代码
May 25 Javascript
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
Mar 18 Javascript
Jquery获取和修改img的src值的方法
Feb 17 Javascript
jQuery中hide()方法用法实例
Dec 24 Javascript
JQuery替换DOM节点的方法
Jun 11 Javascript
JavaScript观察者模式(经典)
Dec 09 Javascript
JavaScript cookie详解及简单实例应用
Dec 31 Javascript
JavaScript实现数值自动增加动画
Dec 28 Javascript
简单了解Ajax表单序列化的实现方法
Jun 14 Javascript
原生js实现五子棋游戏
May 28 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
Sep 04 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实现框架(二)
2006/10/09 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
Python datetime 如何处理时区信息
2020/09/02 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
python定义具名元组实例操作
2021/02/28 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
Ibatis如何调用存储过程
2015/05/15 面试题
员工生日会策划方案
2014/06/14 职场文书
廉政教育的心得体会
2014/09/01 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
司考复习计划
2015/01/19 职场文书
单位推荐信范文
2015/03/27 职场文书
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript