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 相关文章推荐
jquery click([data],fn)使用方法实例介绍
Jul 08 Javascript
JS实现点击下载的小例子
Jul 10 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
使用原生JS实现弹出层特效
Dec 22 Javascript
简述JavaScript的正则表达式中test()方法的使用
Jun 16 Javascript
javascript 内置对象及常见API详细介绍
Nov 01 Javascript
详解webpack分包及异步加载套路
Jun 29 Javascript
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
react native 文字轮播的实现示例
Jul 27 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
Aug 27 Javascript
javascript实现前端分页效果
Jun 24 Javascript
Vue自定义组件双向绑定实现原理及方法详解
Sep 03 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入门
2006/10/09 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
vue实现拖拽效果
2019/12/23 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
python中threading超线程用法实例分析
2015/05/16 Python
Python制作数据导入导出工具
2015/07/31 Python
名片管理系统python版
2018/01/11 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
Python面向对象程序设计示例小结
2019/01/30 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
python 决策树算法的实现
2020/10/09 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
体育教育专业毕业生自荐信
2013/11/15 职场文书
酒店中秋节促销方案
2014/01/30 职场文书
可贵的沉默教学反思
2014/02/06 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
志愿者个人总结
2015/03/03 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python
Java如何实现树的同构?
2021/06/22 Java/Android