jquery 插件之仿“卓越亞馬遜”首頁彈出菜單效果
更新時(shí)間:2008年12月25日 14:46:26 作者:
用jquery實(shí)現(xiàn)的彈出菜單插件
復(fù)制代碼 代碼如下:
/*彈出式菜單*/
//沒劍 2008-07-03
//http://regedit.cnblogs.com
/*參數(shù)說明*/
//showobj:要顯示的菜單ID
//timeout:延時(shí)時(shí)間,鼠標(biāo)停留/離開后延時(shí)多久開始顯示/隱藏菜單
//speed:菜單顯示速度,數(shù)字越大,顯示越慢,默認(rèn)為100
//調(diào)用示例:$("#button").DMenu("#content");
jQuery.fn.DMenu=function(showobj,timeout,speed){
timeout=timeout?timeout:300;
speed=speed?speed:100;
//按鈕對(duì)象
var button=$(this);
//延時(shí)計(jì)數(shù)器
var timer=null;
//隱藏的浮動(dòng)層
var hideDiv=$("<div></div>");
//容器對(duì)象
var Container=$("<div id=\"Container\"></div>");
Container.hide();
hideDiv.append(Container);
//菜單對(duì)象
var jqShowObj=$(showobj);
//隱藏菜單
jqShowObj.hide();
//菜單顯示的狀態(tài)
var display=false;
//按鈕的offset
var offset=button.offset();
//菜單區(qū)高
var height=jqShowObj.height();
//菜單區(qū)寬
var width=jqShowObj.width();
//按鈕的高
var btnHeight=button.height();
//按鈕的寬
var btnWidth=button.width();
//定位層放到最前面
$(document.body).prepend(hideDiv);
//放到容器中
//Container.append(jqShowObj);
//****顯示菜單方法開始****//
var showMenu=function(){
//如果菜單為顯示則退出操作
if (display)
{
return false;
}
//設(shè)置容器屬性
Container.css({
margin:"0 auto",
width:btnWidth+"px",
height:btnHeight+"px"
});
//定位隱藏層
hideDiv.css({
position:"absolute",
top:offset.top+"px",
left:offset.left+(btnWidth/2)-(width/2)+"px",
height:height+"px",
width:width+"px"
}).show();
//給容器加個(gè)黑邊框
Container.css({
border:"1px solid #666666"
});
//顯示定位層
//高寬慢慢增大
Container.animate({
marginTop:btnHeight+4,
height:height+4,
width:width+4,
opacity:'100'},speed,function(){
//動(dòng)畫結(jié)束時(shí) start//
//顯示菜單
jqShowObj.show();
//添加菜單入容器
Container.append(jqShowObj);
//去除邊框
Container.css({
border:"0px"
});
//顯示狀態(tài)置為true
display=true;
//鼠標(biāo)移入
jqShowObj.mouseover(function(){
clearTimeout(timer);
});
//鼠標(biāo)移開
jqShowObj.mouseout(function(){
hideMenu();
});
//動(dòng)畫結(jié)束時(shí) end//
});
};
//****顯示菜單方法結(jié)束****//
//****隱藏菜單方法開始****//
var hideMenu=function(){
clearTimeout(timer);
//延時(shí)隱藏菜單
timer=setTimeout(function(){
//顯示邊框
Container.css({
border:"1px solid #666666"
});
//清空容器
Container.empty();
//收縮容器
Container.animate({
width:btnWidth,height:btnHeight,marginTop:'0', opacity: '0'
}, speed,function(){
//動(dòng)畫結(jié)束時(shí) start//
//隱藏容器
Container.hide();
//定位層隱藏
hideDiv.hide();
//顯示狀態(tài)置為false
display=false;
//動(dòng)畫結(jié)束時(shí) end//
});
}, timeout);
};
//****隱藏菜單方法結(jié)束****//
//綁定按鈕鼠標(biāo)經(jīng)過事件
button.hover(function(e){
//延時(shí)顯示菜單
clearTimeout(timer);
timer=setTimeout(function(){
showMenu();
}, timeout);
},function(){
clearTimeout(timer);
//鼠標(biāo)離開按鈕時(shí),如果菜單還是顯示狀態(tài)則隱藏
if(display){
timer=setTimeout(function(){
hideMenu();
},timeout);
}
});
};
注:對(duì)于select擋住彈出菜單的問題,因?yàn)榕c插件沒有關(guān)系,所以在此,偶沒有解決,放哪個(gè)select在哪只是想提醒大家使用彈出菜單時(shí)要注意到這個(gè)問題,具體的解決方法可以自動(dòng)搜索,或者在排版上作調(diào)整。
文件打包下載
您可能感興趣的文章:
- 編寫純 CSS 彈出菜單的原理及實(shí)現(xiàn) By shawl.qiu
- Js+DVML很酷漂亮實(shí)用的右鍵彈出菜單
- 無js5款純div+css制作的彈出菜單標(biāo)準(zhǔn)
- js 彈出菜單/窗口效果
- android popwindow實(shí)現(xiàn)左側(cè)彈出菜單層及PopupWindow主要方法介紹
- Android之用PopupWindow實(shí)現(xiàn)彈出菜單的方法詳解
- Android ListView長(zhǎng)按彈出菜單二種實(shí)現(xiàn)方式示例
- Android實(shí)現(xiàn)類似于PC中的右鍵彈出菜單效果
- Android仿QQ滑動(dòng)彈出菜單標(biāo)記已讀、未讀消息
- 簡(jiǎn)單實(shí)現(xiàn)Android彈出菜單效果
相關(guān)文章
基于jQuery的$.getScript方法去加載javaScript文檔解析
下面小編就為大家?guī)硪黄趈Query的$.getScript方法去加載javaScript文檔解析。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
ie8模式下click無反應(yīng)點(diǎn)擊option無反應(yīng)的解決方法
點(diǎn)擊select里面的option,將其賦值到上面的input,直接用jQuery寫的,問題是在用IE8打開的時(shí)候,點(diǎn)擊option沒有任何反應(yīng)2014-10-10
淺談jQuery this和$(this)的區(qū)別及獲取$(this)子元素對(duì)象的方法
下面小編就為大家?guī)硪黄獪\談jQuery this和$(this)的區(qū)別及獲取$(this)子元素對(duì)象的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
jQuery實(shí)現(xiàn)二級(jí)導(dǎo)航菜單的示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)二級(jí)導(dǎo)航菜單的示例,幫助大家理解和制作網(wǎng)頁特效,感興趣的朋友可以了解下2020-09-09
jquery ajax結(jié)合thinkphp的getjson實(shí)現(xiàn)跨域的方法
這篇文章主要介紹了jquery ajax結(jié)合thinkphp的getjson實(shí)現(xiàn)跨域的方法,結(jié)合實(shí)例形式對(duì)比分析了jQuery ajax實(shí)現(xiàn)跨域的具體操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
jquery彩色投票進(jìn)度條簡(jiǎn)單實(shí)例演示
這篇文章向大家推薦了一個(gè)jquery彩色投票進(jìn)度條簡(jiǎn)單實(shí)例演示,詳細(xì)介紹了如何制作進(jìn)度條的步驟,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-11-11
使用jQuery向asp.net Mvc傳遞復(fù)雜json數(shù)據(jù)-ModelBinder篇
jQuery提供的ajax方法能很方便的實(shí)現(xiàn)客戶端與服務(wù)器的異步交互,在asp.net mvc 框架使用jQuery能很方便地異步獲取提交數(shù)據(jù),給用戶提供更好的體驗(yàn)!2010-05-05

