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中的缓动效果实现程序
Dec 29 Javascript
Egret引擎开发指南之编译项目
Sep 03 Javascript
再谈javascript原型继承
Nov 10 Javascript
浅谈javascript中的闭包
May 13 Javascript
JavaScript中Cookies的相关使用教程
Jun 04 Javascript
js 获取图像缩放后的实际宽高,位置等信息
Mar 07 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
Mar 13 Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 Javascript
vue.js,ajax渲染页面的实例
Feb 11 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
使用canvas实现一个vue弹幕组件功能
Nov 30 Javascript
scrapyd schedule.json setting 传入多个值问题
Aug 07 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+MYSQL的文章管理系统(一)
2006/10/09 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
php中final关键字用法分析
2016/12/07 PHP
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
Javascript中的apply()方法浅析
2015/03/15 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
python中定义结构体的方法
2013/03/04 Python
python抓取网页图片示例(python爬虫)
2014/04/27 Python
python中hashlib模块用法示例
2017/10/30 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
pytorch构建多模型实例
2020/01/15 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
介绍一下#error预处理
2015/09/25 面试题
大学四年规划书范文
2013/12/27 职场文书
给领导的检讨书
2014/02/16 职场文书
雏鹰争章活动总结
2014/05/09 职场文书