jQuery实现背景滑动菜单


Posted in Javascript onDecember 02, 2016

话不多说,直接附上源码,仅供大家参考

<div class="menu">
 <ul id="menu">
 <li><a href="#">JavaScript</a></li>
 <li value="1"><a href="#">Graphic Design</a></li>
 <li><a href="#">HTML</a></li>
 <li><a href="#">User Interface</a></li>
 <li><a href="#">CSS</a></li>
 </ul>
 <div id="slide"></div>
</div>
* {margin:0; padding:0}
body {font:14px Helvetica, sans-serif; font-weight:bold; background:#FFF}
.menu {position:relative; background:url(images/bg.gif) no-repeat; height:35px; width:459px}
.menu ul {list-style:none; z-index:10; position:absolute; z-index:100; padding:9px 5px}
.menu li {float:left}
.menu a, .menu a:active, .menu a:visited, .menu a:hover {text-decoration:none; color:#FFF; padding:10px}
#slide {position:absolute; top:6px; height:24px; background:#89957a; z-index:10;}
(function($){
 $.fn.extend({
 bgslide:function(value){
 //可选参数
 value=$.extend({
 "fw":12,
 "sw":2,
 "ftime":100,
 "stime":300
 },value);
 //初始化背景的位置
 var liw = $("ul li:eq(0)",value.menu).width();//获取第一个li的宽
 var $slide = $(this).children("div"); 
 $slide.css({"width":liw,"left":"5"});
 //悬停时执行动画
 function hani(w,l){
 $slide.stop(true) //很关键的一句话,当悬停时,让正在执行的动画,和列队中的动画,都取消;防止鼠标不停滑动时的bug;
 .animate({"width":w,"left":l+value.fw},value.ftime)
 .animate({"left":l-value.fw},value.stime)
 .animate({"left":l+value.sw},value.stime)
 .animate({"left":l-value.sw},value.stime);
 } 
 //离开时执行动画 
 function oani(){
 $slide.stop(true)
 .animate({"width":liw,"left":"5"},value.ftime)
 .animate({"left":l-value.fw},value.stime)
 .animate({"left":l+value.sw},value.stime)
 .animate({"left":l-value.sw},value.stime);; 
 }
 $("ul li",this).hover(function(){
 var w = $(this).width(); //获取当前li的宽
 var l = $(this).position().left; //获取当前li的横坐标 
 if(!$(this).index()==0){ //鼠标悬停在第一个LI时,不发生动画
 hani(w,l);
 }
 },function(){
 oani();
 });
 } 
 })
})(jQuery);

html结构思路:

div:放置一个背景图层,相对定位;

UL:放置菜单内容,绝对定位;

div:放置滑动的背景层,绝对定位;

JQuery思路分析:

鼠标悬停到每一个LI的时候,让这个滑动的背景层,通过水平移动动画,来定位到当前这个LI的地方;并有一个左右晃动效果;鼠标离开时,让背景层滑动到初始位置;

鼠标悬停时:

1.获取当前LI相对于最外层DIV的水平坐标,即横坐标值;

2.让滑动的背景层的横坐标正好等于当前LI的横坐标;

3.执行一个左右晃动的动画,即改变当前水平坐标的值;

鼠标离开时:

1.让背景层滑动到初始位置,即改变横坐标的值,为初始值;

下载Demo地址:http://xiazai.3water.com/yuanma/myslidebgmenu(3water.com).rar

以上就是本文的全部内容,希望对大家有所帮助,谢谢对三水点靠木的支持!

Javascript 相关文章推荐
jquery获取radio值(单选组radio)
Oct 16 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
ECMAScript 5中的属性描述符详解
Mar 02 Javascript
简介JavaScript中的setHours()方法的使用
Jun 11 Javascript
介绍一个简单的JavaScript类框架
Jun 24 Javascript
js限制文本框只能输入中文的方法
Aug 11 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
Apr 14 Javascript
JavaScript常用工具方法封装
Feb 12 Javascript
一些你可能不熟悉的JS知识点总结
Mar 15 Javascript
小程序实现自定义导航栏适配完美版
Apr 02 Javascript
编写一个javascript元循环求值器的方法
Apr 14 Javascript
Postman参数化实现过程及原理解析
Aug 13 Javascript
Angular2学习笔记——详解NgModule模块
Dec 02 #Javascript
Angular2学习笔记——详解路由器模型(Router)
Dec 02 #Javascript
基于jQuery实现的幻灯图片切换
Dec 02 #Javascript
JavaScript中清空数组的方法总结
Dec 02 #Javascript
浅谈js中几种实用的跨域方法原理详解
Dec 02 #Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
Dec 02 #Javascript
探讨跨域请求资源的几种方式(总结)
Dec 02 #Javascript
You might like
解析php中获取url与物理路径的总结
2013/06/21 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
js操作iframe的一些方法介绍
2013/06/25 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
Python简单生成随机数的方法示例
2018/03/31 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
python画环形图的方法
2020/03/25 Python
python实现二分查找算法
2020/09/18 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
信访工作者先进事迹
2014/01/17 职场文书
幼儿园教研活动方案
2014/01/19 职场文书
初三学习决心书
2014/03/11 职场文书
电气自动化求职信
2014/06/24 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
三方合作意向书范本
2015/05/09 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
python基础之文件处理知识总结
2021/05/23 Python
PyTorch中permute的使用方法
2022/04/26 Python
Java 数组的使用
2022/05/11 Java/Android
JS实现简单九宫格抽奖
2022/06/28 Javascript