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 相关文章推荐
将CKfinder整合进CKEditor3.0的新方法
Jan 10 Javascript
js 多种变量定义(对象直接量,数组直接量和函数直接量)
May 24 Javascript
JavaScript基本的输出和嵌入式写法教程
Oct 20 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
May 10 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
Jul 06 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
Oct 10 Javascript
js上下视差滚动简单实现代码
Mar 07 Javascript
jQuery实现图片滑动效果
Mar 08 Javascript
JS验证input输入框(字母,数字,符号,中文)
Mar 23 Javascript
JavaScript反弹动画效果的实现代码
Jul 13 Javascript
深入剖析Express cookie-parser中间件实现示例
Feb 01 Javascript
tween.js缓动补间动画算法示例
Feb 13 Javascript
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
javascript 面向对象编程基础 多态
2009/08/21 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
基于jquery的$.ajax async使用
2011/10/19 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
Node.js模块加载详解
2014/08/16 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
用Python的Django框架完成视频处理任务的教程
2015/04/02 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
python如何安装下载后的模块
2020/07/03 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
计算机专业推荐信范文
2013/11/27 职场文书
竞选部长演讲稿
2014/04/26 职场文书
民用住房租房协议书
2014/10/29 职场文书
工作失误检讨书范文
2015/01/26 职场文书
捐书活动倡议书
2015/04/27 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
集结号观后感
2015/06/08 职场文书
辩论赛新闻稿
2015/07/17 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
关于Python中进度条的六个实用技巧分享
2022/04/05 Python