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

更多相关文章

  1. android 中文 api (64) —— Scroller
  2. Android(安卓)Listview 隐藏滚动条
  3. Android中的小技巧
  4. Android(安卓)如何实现带滚动条的TextView,在更新文字时自动滚动
  5. Android(安卓)Listview 隐藏滚动条
  6. 微信小程序滚动选择器(时间日期)详解及实例代码
  7. 基于SSIS 事件的向上传递(详解)
  8. Android控件TextView中ellipsize属性(设置当文字长度超过textview
  9. 手动滑动TextView超出的内容

随机推荐

  1. as4上安装apache,mysql,php,cacti,nagios
  2. 高版本Mysql用phpAdmin导入低版本的Mysql
  3. MySQL 数据(字段)类型
  4. Windows Mysql Server重启, log-bin路径
  5. Yahoo的MySQL性能分析器详解
  6. mysql5.7.13安装配置及使用
  7. 从两个表中选择结果并合并结果
  8. MySQL中添加唯一约束和联合唯一约束
  9. MySQL数据库以及相关知识点总结大全
  10. 加载数据INFILE不工作。