jquery 插件之仿“卓越亞馬遜”首頁彈出菜單效果
更新時間:2008年12月25日 14:46:26 作者:
用jquery實(shí)現(xiàn)的彈出菜單插件
復(fù)制代碼 代碼如下:
/*彈出式菜單*/
//沒劍 2008-07-03
//http://regedit.cnblogs.com
/*參數(shù)說明*/
//showobj:要顯示的菜單ID
//timeout:延時時間,鼠標(biāo)停留/離開后延時多久開始顯示/隱藏菜單
//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;
//按鈕對象
var button=$(this);
//延時計數(shù)器
var timer=null;
//隱藏的浮動層
var hideDiv=$("<div></div>");
//容器對象
var Container=$("<div id=\"Container\"></div>");
Container.hide();
hideDiv.append(Container);
//菜單對象
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();
//給容器加個黑邊框
Container.css({
border:"1px solid #666666"
});
//顯示定位層
//高寬慢慢增大
Container.animate({
marginTop:btnHeight+4,
height:height+4,
width:width+4,
opacity:'100'},speed,function(){
//動畫結(jié)束時 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();
});
//動畫結(jié)束時 end//
});
};
//****顯示菜單方法結(jié)束****//
//****隱藏菜單方法開始****//
var hideMenu=function(){
clearTimeout(timer);
//延時隱藏菜單
timer=setTimeout(function(){
//顯示邊框
Container.css({
border:"1px solid #666666"
});
//清空容器
Container.empty();
//收縮容器
Container.animate({
width:btnWidth,height:btnHeight,marginTop:'0', opacity: '0'
}, speed,function(){
//動畫結(jié)束時 start//
//隱藏容器
Container.hide();
//定位層隱藏
hideDiv.hide();
//顯示狀態(tài)置為false
display=false;
//動畫結(jié)束時 end//
});
}, timeout);
};
//****隱藏菜單方法結(jié)束****//
//綁定按鈕鼠標(biāo)經(jīng)過事件
button.hover(function(e){
//延時顯示菜單
clearTimeout(timer);
timer=setTimeout(function(){
showMenu();
}, timeout);
},function(){
clearTimeout(timer);
//鼠標(biāo)離開按鈕時,如果菜單還是顯示狀態(tài)則隱藏
if(display){
timer=setTimeout(function(){
hideMenu();
},timeout);
}
});
};
注:對于select擋住彈出菜單的問題,因為與插件沒有關(guān)系,所以在此,偶沒有解決,放哪個select在哪只是想提醒大家使用彈出菜單時要注意到這個問題,具體的解決方法可以自動搜索,或者在排版上作調(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長按彈出菜單二種實(shí)現(xiàn)方式示例
- Android實(shí)現(xiàn)類似于PC中的右鍵彈出菜單效果
- Android仿QQ滑動彈出菜單標(biāo)記已讀、未讀消息
- 簡單實(shí)現(xiàn)Android彈出菜單效果
相關(guān)文章
JQuery拖拽元素改變大小尺寸實(shí)現(xiàn)代碼
"元素拖拽改變大小"其實(shí)和"元素拖拽"一個原理,以下附出源碼原型,弄明白了原理再擴(kuò)展其他實(shí)際應(yīng)用,思路就變得簡單、清晰得多了2012-12-12jquery.pager.js分頁實(shí)現(xiàn)詳解
這篇文章主要為大家詳細(xì)介紹了jquery.pager.js分頁的實(shí)現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07使用jQuery ajaxupload插件實(shí)現(xiàn)無刷新上傳文件
項目中會經(jīng)常用到AJAX無刷新上傳圖片,但是iframe上傳和flash插件都是比較復(fù)雜的,所以就找了一個jquery的插件。下面通過實(shí)例代碼給大家介紹使用jQuery ajaxupload插件實(shí)現(xiàn)無刷新上傳文件功能,需要的朋友參考下吧2017-04-04jquery數(shù)組之存放checkbox全選值示例代碼
使用jquery數(shù)組可以存放checkbox全選值,下面有個不錯的示例,感興趣的朋友可以參考下2013-12-12jQuery實(shí)現(xiàn)帶滾動導(dǎo)航效果的全屏滾動相冊實(shí)例
這篇文章主要介紹了jQuery實(shí)現(xiàn)帶滾動導(dǎo)航效果的全屏滾動相冊,涉及jQuery針對頁面圖片元素與鼠標(biāo)事件的相關(guān)操作技巧,需要的朋友可以參考下2015-06-06jQuery實(shí)現(xiàn)設(shè)置、移除文本框默認(rèn)值功能
這篇文章主要介紹了jQuery實(shí)現(xiàn)設(shè)置、移除文本框默認(rèn)值功能,本文實(shí)現(xiàn)是類似html5 placeholder(空白提示)效果,正常時文本框有提示文字,當(dāng)文本框獲得焦點(diǎn)時變?yōu)榭瞻?需要的朋友可以參考下2015-01-01基于jQuery實(shí)現(xiàn)文字打印動態(tài)效果
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)文字打印動態(tài)效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04jQuery.uploadify文件上傳組件實(shí)例講解
這篇文章主要介紹了jQuery.uploadify文件上傳組件實(shí)例講解的相關(guān)資料,本文圖文并茂介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友可以參考下2016-09-09