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 相关文章推荐
非常强大的 jQuery.AsyncBox 弹出对话框插件
Aug 29 Javascript
jQuery实现切换页面布局使用介绍
Oct 09 Javascript
Javascript中拼接大量字符串的方法
Feb 05 Javascript
学习javascript文件加载优化
Feb 19 Javascript
Angular项目从新建、打包到nginx部署全过程记录
Dec 09 Javascript
node.js文件上传重命名以及移动位置的示例代码
Jan 19 Javascript
Vue-Router模式和钩子的用法
Feb 28 Javascript
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
微信小程序--获取用户地理位置名称(无须用户授权)的方法
Apr 29 Javascript
JsonServer安装及启动过程图解
Feb 28 Javascript
Vue实现图片轮播组件思路及实例解析
May 11 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
Nov 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
PHP开发文件系统实例讲解
2006/10/09 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
php实现单链表的实例代码
2013/03/22 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
测试你的JS的掌握程度的代码
2009/12/09 Javascript
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
2020/07/17 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
Python中的迭代器漫谈
2015/02/03 Python
浅谈python数据类型及类型转换
2017/12/18 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
师范类求职信
2014/06/21 职场文书
中文专业自荐书
2014/06/29 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
七年级上册生物的课件
2019/08/07 职场文书