jQuery實(shí)現(xiàn)背景滑動(dòng)菜單
話不多說,直接附上源碼,僅供大家參考
<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){
//可選參數(shù)
value=$.extend({
"fw":12,
"sw":2,
"ftime":100,
"stime":300
},value);
//初始化背景的位置
var liw = $("ul li:eq(0)",value.menu).width();//獲取第一個(gè)li的寬
var $slide = $(this).children("div");
$slide.css({"width":liw,"left":"5"});
//懸停時(shí)執(zhí)行動(dòng)畫
function hani(w,l){
$slide.stop(true) //很關(guān)鍵的一句話,當(dāng)懸停時(shí),讓正在執(zhí)行的動(dòng)畫,和列隊(duì)中的動(dòng)畫,都取消;防止鼠標(biāo)不?;瑒?dòng)時(shí)的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);
}
//離開時(shí)執(zhí)行動(dòng)畫
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(); //獲取當(dāng)前l(fā)i的寬
var l = $(this).position().left; //獲取當(dāng)前l(fā)i的橫坐標(biāo)
if(!$(this).index()==0){ //鼠標(biāo)懸停在第一個(gè)LI時(shí),不發(fā)生動(dòng)畫
hani(w,l);
}
},function(){
oani();
});
}
})
})(jQuery);
html結(jié)構(gòu)思路:
div:放置一個(gè)背景圖層,相對定位;
UL:放置菜單內(nèi)容,絕對定位;
div:放置滑動(dòng)的背景層,絕對定位;
JQuery思路分析:
鼠標(biāo)懸停到每一個(gè)LI的時(shí)候,讓這個(gè)滑動(dòng)的背景層,通過水平移動(dòng)動(dòng)畫,來定位到當(dāng)前這個(gè)LI的地方;并有一個(gè)左右晃動(dòng)效果;鼠標(biāo)離開時(shí),讓背景層滑動(dòng)到初始位置;
鼠標(biāo)懸停時(shí):
1.獲取當(dāng)前LI相對于最外層DIV的水平坐標(biāo),即橫坐標(biāo)值;
2.讓滑動(dòng)的背景層的橫坐標(biāo)正好等于當(dāng)前LI的橫坐標(biāo);
3.執(zhí)行一個(gè)左右晃動(dòng)的動(dòng)畫,即改變當(dāng)前水平坐標(biāo)的值;
鼠標(biāo)離開時(shí):
1.讓背景層滑動(dòng)到初始位置,即改變橫坐標(biāo)的值,為初始值;
下載Demo地址:http://xiazai.jb51.net/yuanma/myslidebgmenu(jb51.net).rar
以上就是本文的全部內(nèi)容,希望對大家有所幫助,謝謝對腳本之家的支持!
- jQuery實(shí)現(xiàn)可用于博客的動(dòng)態(tài)滑動(dòng)菜單完整實(shí)例
- jquery實(shí)現(xiàn)仿Flash的橫向滑動(dòng)菜單效果代碼
- jquery實(shí)現(xiàn)最簡單的滑動(dòng)菜單效果代碼
- jQuery實(shí)現(xiàn)帶延遲效果的滑動(dòng)菜單代碼
- jquery實(shí)現(xiàn)左右滑動(dòng)菜單效果代碼
- jQuery實(shí)現(xiàn)可用于博客的動(dòng)態(tài)滑動(dòng)菜單
- 利用JQuery動(dòng)畫制作滑動(dòng)菜單項(xiàng)效果實(shí)現(xiàn)步驟及代碼
相關(guān)文章
jquery自動(dòng)補(bǔ)齊功能插件flexselect用法示例
這篇文章主要介紹了jquery自動(dòng)補(bǔ)齊功能插件flexselect用法,結(jié)合實(shí)例形式分析了flexselect實(shí)現(xiàn)自動(dòng)補(bǔ)齊功能的操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-08-08
jQuery插件實(shí)現(xiàn)表格隔行換色且感應(yīng)鼠標(biāo)高亮行變色
實(shí)現(xiàn)表格隔行換色,且感應(yīng)鼠標(biāo)行變色的方法有很多,在本文將為大家介紹的是使用jQuery插件來實(shí)現(xiàn),具體如下,感興趣的朋友可以練練手2013-09-09
Jquery chosen動(dòng)態(tài)設(shè)置值實(shí)例介紹
Jquery chosen一款選擇插件,支持檢索,多選,但不支持輸入效果,下面與大家分享下其使用示例,感興趣的朋友可以參考下,希望對大家有所幫助2013-08-08

