jQuery实现带滚动线条导航效果的方法


Posted in Javascript onJanuary 30, 2015

本文实例讲述了jQuery实现带滚动线条导航效果的方法。分享给大家供大家参考。具体分析如下:

最早见到这种导航是在魅族的官网,当时(去年)觉得挺不错的但自己不会JavaScript,因此那时“可望而不可及”。今日去手机QQ for Android官网,又发现类似这样的导航,反正自己也没啥事,所以就尝试用jQuery做出这样的效果。

效果如下:

首页
说说
日志
相册
   
CSS:

body,ul,li{margin:0;padding:0;}
#testnav{;height:80px;background:#333;}
.testmenu{width:320px;padding-top:45px;margin:0 auto;}
.testbox div{float:left;width:80px;height:30px;text-align:center;}
.testbox a{color:#ccc;text-decoration:none;font:700 12px/1 "宋体";}
.testbox a:hover{color:#CCEEFF;text-decoration:underline;}
.testline-box{width:100%;background:#eee;}
.testline{display:block;height:3px;width:80px;background:#999;}

HTML:

<div id="testnav">
 <div class="testmenu">
  <div class="testbox">
   <div><a href="javascript:void(0)">首页</a></div>
   <div><a href="javascript:void(0)">说说</a></div>
   <div><a href="javascript:void(0)">日志</a></div>
   <div><a href="javascript:void(0)">相册</a></div>
  </div>
  <div style="clear:both;"></div>
  <div class="testline-box">
 <span class="testline"></span>
 </div>
 </div>
</div>

jQuery:

var $line=$("span.testline");
var $w=$(".testbox > div").width();
var m=0;
$(".testbox > div").each(function(n){
 var x=$w*n;
 $(this).mouseenter(function(){
  $line.stop(true,true).animate({"margin-left":x},"slow","easeOutBack");
 });
 $("a",this).click(function(){
  m=x;
 });
});
$(".testbox").mouseleave(function(){
 $line.stop(true,true).animate({"margin-left":m},"slow","easeOutBack");
});

代码写的比较粗糙,再加上自己水平有限,或许您可以简化写的更好(反正大致思路应该就是这样+_+)。

注意:代码中使用了easing插件的效果。记得要去下载并引用这个插件。如果不想使用easing插件则可将JS中的“easeOutBack”删掉或者换成“swing”。

demo中的菜单的链接地址我使用了javascript:void(0)代替,主要目的是为了方便演示效果。在实际运用中,我们可以根据当前的url来判断当前所在位置,确定位置之后再重新给JavaScript中变量m赋值,从而能确定线条应处于哪个菜单下。当然肯定还有其他方法来判断当前位置。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
jQuery 使用手册(二)
Sep 23 Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
Apr 09 Javascript
Javascript中使用parseInt函数需要注意的问题
Apr 02 Javascript
js动态添加的DIV中的onclick事件简单实例
Jul 25 Javascript
JavaScript实现自定义媒体播放器方法介绍
Jan 03 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 Javascript
基于Vue中点击组件外关闭组件的实现方法
Mar 06 Javascript
Vue动画事件详解及过渡动画实例
Feb 09 Javascript
微信小程序城市选择及搜索功能的方法
Mar 22 Javascript
Jquery cookie插件实现原理代码解析
Aug 04 jQuery
jquery实现拖拽调整Div大小
Jan 30 #Javascript
jQuery中$.click()无效问题分析
Jan 29 #Javascript
Eclipse配置Javascript开发环境图文教程
Jan 29 #Javascript
js操作滚动条事件实例
Jan 29 #Javascript
jQuery调取jSon数据并展示的方法
Jan 29 #Javascript
jquery通过load获取文件的内容并跳到锚点的方法
Jan 29 #Javascript
浅谈Javascript 数组与字典
Jan 29 #Javascript
You might like
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Python遍历目录的4种方法实例介绍
2015/04/13 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
python使用多进程的实例详解
2018/09/19 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
python中format函数如何使用
2020/06/22 Python
Python基于Faker假数据构造库
2020/11/30 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
德国足球商店:OUTFITTER
2019/05/06 全球购物
如何查找网页漏洞
2016/06/22 面试题
交通专业个人自荐信格式
2013/09/23 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
和解协议书
2014/04/16 职场文书
学校工会工作总结2015
2015/05/19 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL