话不多说,直接附上源码,仅供大家参考
<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.jb51.net/yuanma/myslidebgmenu(jb51.net).rar
以上就是本文的全部内容,希望对大家有所帮助,谢谢对的支持!
标签:
jquery,滑动菜单
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“jQuery实现背景滑动菜单”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
2024年11月14日
2024年11月14日
- 黑鸭子2008-今生最爱[首版][WAV+CUE]
- 彭海桐.2000-好好想想你【SONY】【WAV+CUE】
- 群星.1995-亚洲电视剧集主题曲大全·乐作剧2CD【滚石】【WAV+CUE】
- 林强.1992-春风少年兄【魔岩】【WAV+CUE】
- 世界顶级汽车音响试音王《金色的草原》24K金碟[低速原抓WAV+CUE][1G]
- 周深 /Faouzia《解密 电影原声带》[320K/MP3][39.32MB]
- 周深 /Faouzia《解密 电影原声带》[FLAC/分轨][199.46MB]
- 英雄联盟s14亚军队伍是哪支 英雄联盟s14亚军队伍介绍
- 英雄联盟s14夺冠队伍是哪支 英雄联盟s14夺冠队SKT T1队伍介绍
- faker三冠王是哪几个赛季 faker三冠王赛季介绍
- 岩贵-音乐磁场(AI调音)2CD[WAV]
- 童丽《千愁记旧情》HQII头版限量编号2024[低速原抓WAV+CUE]
- 瑞鸣十五周年纪念3[HQCD限量编号头版][低速原抓WAV+CUE]
- 任天堂专利展示新VR外设:或会随同NS继任机型推出
- 博主制作“Switch 2”模型 与现有掌机对比