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 Cookie 直接浏览网站分网址
Dec 08 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
May 29 Javascript
Extjs grid panel自带滚动条失效的解决方法
Sep 11 Javascript
javascript 实现 原路返回
Jan 21 Javascript
谈一谈JS消息机制和事件机制的理解
Apr 14 Javascript
jQuery实现三级菜单的代码
May 09 Javascript
浅谈javascript中的Function和Arguments
Aug 30 Javascript
基于JavaScript实现活动倒计时效果
Apr 20 Javascript
实例讲解Vue.js中router传参
Apr 22 Javascript
Vue实现开心消消乐游戏算法
Oct 22 Javascript
Javascript类型判断相关例题及解析
Aug 26 Javascript
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
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 Cookie的一个使用注意点
2008/11/08 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php实现搜索类封装示例
2016/03/31 PHP
JS Array对象入门分析
2008/10/30 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
jquery ajaxSubmit 异步提交的简单实现
2014/02/28 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python 显示数组全部元素的方法
2018/04/19 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
捷克玩具商店:Bambule
2019/02/23 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
什么叫做SQL注入,如何防止
2016/10/04 面试题
什么样的创业计划书可行性高?
2014/02/01 职场文书
元旦活动感言
2014/03/08 职场文书
支部鉴定材料
2014/06/02 职场文书
公安学专业求职信
2014/07/27 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技