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 window.opener的用法分析
Apr 07 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
Bootstrap对话框使用实例讲解
Sep 24 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
react-native 圆弧拖动进度条实现的示例代码
Apr 12 Javascript
vue forEach循环数组拿到自己想要的数据方法
Sep 21 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
Mar 09 Javascript
Vue SSR 即时编译技术的实现
May 06 Javascript
JavaScript实现猜数字游戏
May 20 Javascript
JS画布动态实现黑客帝国背景效果
Nov 08 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php使用百度天气接口示例
2014/04/22 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
使用python模拟命令行终端的示例
2019/08/13 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
介绍一下linux文件系统分配策略
2013/02/25 面试题
春节联欢晚会主持词范文
2014/03/24 职场文书
我的画教学反思
2014/04/28 职场文书
成立公司计划书
2014/05/07 职场文书
先进集体申报材料
2014/12/25 职场文书
人事局接收函
2015/01/30 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers