如何用js实现鼠标向上滚动时浮动导航


Posted in Javascript onJuly 18, 2016

为什么会有这个需求呢?有没有发现在国外的一些网站,当你向上滚动时,导航条浮动在顶部位置。用户如果是想看内容就可以直接点击到达,省去很多拖动的时间,当然返回顶部也是比较容易。但有时候返回顶部这个按钮往往被人忽略了。下面一起来看看代码和演示(引入jQuery 1.9)。

判断鼠标向上滚动,或者向下滚动,可以通过对比用户的上一次滚动的坐标和下一次的坐标,当上一次小于下一次时,即用户在向下滚动,反之,则说明用户在向上滚动。滚动的坐标值可以取窗口的scrollTop。

HTML代码示例

<div id="Jnav">
 <ul class="nav">
 <li><a href="http://caibaojian.com/">WEB前端开发</a></li>
 <li><a href="#">前端开发博客</a></li>
 <li><a href="#">前端开发</a></li>
 <li><a href="#">前端开发</a></li>
 </ul>
</div>

JavaScript代码示例

var $nav = $('#Jnav'), navTop = $nav.offset().top, navH = $nav.outerHeight(),winTop_1=0,winWidth=$(window).width(), holder=jQuery('<div>');
$(window).on('scroll',function(){
 var winTop_2 = $(window).scrollTop();
 holder.css('height',navH);
 //开始浮动,不过不显示
 if(winTop_2>navTop && winWidth>980){
 holder.show().insertBefore($nav);
 $nav.addClass('fixed-nav');
 }else{
 holder.hide();
 $nav.removeClass('fixed-nav');
 }
 //判断鼠标向上滚动,显示出来
 if(winTop_2>winTop_1 && winWidth>980){
 $nav.removeClass('fixed-nav-appear');
 }else if(winTop_2<winTop_1){
 $nav.addClass('fixed-nav-appear');
 }
 winTop_1 = $(window).scrollTop();
})

CSS代码示例

.nav{width:980px; margin:0 auto;}
.nav li{display:inline-block; *display:inline; *zoom:1; margin:0 10px;}
.nav li a{display:block; padding:5px 10px;}
.fixed-nav{
 position: fixed;
 width:100%;
 top:-40px; 
 -webkit-transition: top .5s;
  -moz-transition: top .5s;
  -o-transition: top .5s;
  transition: top .5s;
  -webkit-box-shadow: 0 2px 2px rgba(0,0,0,.1);
  -moz-box-shadow: 0 2px 2px rgba(0,0,0,.1);
  box-shadow: 0 2px 2px rgba(0,0,0,.1);
}
.fixed-nav-appear{top:0;}

 

以上就是怎么用js实现鼠标向上滚动时浮动导航的示例代码,感兴趣可以参考下。

Javascript 相关文章推荐
自适应高度框架 ----属个人收藏内容
Jan 22 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
Feb 04 Javascript
Jquery 获取对象的几种方式介绍
Jan 17 Javascript
Javascript 按位取反运算符 (~)
Feb 04 Javascript
jQuery结合HTML5制作的爱心树表白动画
Feb 01 Javascript
jQuery版本升级踩坑大全
Jan 12 Javascript
jQuery实现动态文字搜索功能
Jan 05 Javascript
Canvas 绘制粒子动画背景
Feb 15 Javascript
微信小程序实现渐入渐出动画效果
Jun 13 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
Aug 27 Javascript
JavaScript实现轮播图效果代码实例
Sep 28 Javascript
Vue 同步异步存值取值实现案例
Aug 05 Javascript
终于实现了!精彩的jquery弹幕效果
Jul 18 #Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
Jul 18 #Javascript
全面介绍javascript实用技巧及单竖杠
Jul 18 #Javascript
Bootstrap 布局组件(全)
Jul 18 #Javascript
js验证真实姓名与身份证号,手机号的简单实例
Jul 18 #Javascript
Bootstrap零基础入门教程(三)
Jul 18 #Javascript
15位和18位身份证JS校验的简单实例
Jul 18 #Javascript
You might like
PHP 彩色文字实现代码
2009/06/29 PHP
JS 建立对象的方法
2007/04/21 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
Python中List.count()方法的使用教程
2015/05/20 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
销售副总经理岗位职责
2013/12/11 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
公证处委托书
2015/01/28 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
企业文化学习心得体会
2016/01/21 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python