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 获取LI里的内容
Dec 17 Javascript
javascript中attribute和property的区别详解
Jun 05 Javascript
jQuery实现简单的网页换肤效果示例
Sep 18 Javascript
javascript对浅拷贝和深拷贝的详解
Oct 14 Javascript
微信小程序 页面传值详解
Mar 10 Javascript
Vue自定义图片懒加载指令v-lazyload详解
Dec 31 Javascript
zTree获取当前节点的下一级子节点数实例
Sep 05 Javascript
基于vue-video-player自定义播放器的方法
Mar 21 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
Sep 28 Javascript
js变量值传到php过程详解 将php解析成数据
Jun 26 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
javascript实现计算器功能详解流程
Nov 01 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
php利用递归实现删除文件目录的方法
2016/09/23 PHP
php实现数字补零的方法总结
2018/09/12 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
js实现交通灯效果
2017/01/13 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
pyqt5自定义信号实例解析
2018/01/31 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
Django实现文件上传下载
2019/10/06 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
Django 批量插入数据的实现方法
2020/01/12 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
python线程优先级队列知识点总结
2021/02/28 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
优秀大学生的自我评价
2014/01/16 职场文书
英语简历自我评价
2014/01/26 职场文书
大学军训感言300字
2014/03/09 职场文书
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python