jquery 插件之仿“卓越亞馬遜”首頁(yè)彈出菜單效果
/*彈出式菜單*/
//沒劍 2008-07-03
//http://regedit.cnblogs.com
/*參數(shù)說(shuō)明*/
//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)過(guò)事件
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擋住彈出菜單的問(wèn)題,因?yàn)榕c插件沒有關(guān)系,所以在此,偶沒有解決,放哪個(gè)select在哪只是想提醒大家使用彈出菜單時(shí)要注意到這個(gè)問(wèn)題,具體的解決方法可以自動(dòng)搜索,或者在排版上作調(diào)整。
文件打包下載
- 編寫純 CSS 彈出菜單的原理及實(shí)現(xiàn) By shawl.qiu
- Js+DVML很酷漂亮實(shí)用的右鍵彈出菜單
- 無(wú)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拖拽元素改變大小尺寸實(shí)現(xiàn)代碼
"元素拖拽改變大小"其實(shí)和"元素拖拽"一個(gè)原理,以下附出源碼原型,弄明白了原理再擴(kuò)展其他實(shí)際應(yīng)用,思路就變得簡(jiǎn)單、清晰得多了2012-12-12jquery.pager.js分頁(yè)實(shí)現(xiàn)詳解
這篇文章主要為大家詳細(xì)介紹了jquery.pager.js分頁(yè)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07使用jQuery ajaxupload插件實(shí)現(xiàn)無(wú)刷新上傳文件
項(xiàng)目中會(huì)經(jīng)常用到AJAX無(wú)刷新上傳圖片,但是iframe上傳和flash插件都是比較復(fù)雜的,所以就找了一個(gè)jquery的插件。下面通過(guò)實(shí)例代碼給大家介紹使用jQuery ajaxupload插件實(shí)現(xiàn)無(wú)刷新上傳文件功能,需要的朋友參考下吧2017-04-04jquery數(shù)組之存放checkbox全選值示例代碼
使用jquery數(shù)組可以存放checkbox全選值,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2013-12-12jQuery實(shí)現(xiàn)帶滾動(dòng)導(dǎo)航效果的全屏滾動(dòng)相冊(cè)實(shí)例
這篇文章主要介紹了jQuery實(shí)現(xiàn)帶滾動(dòng)導(dǎo)航效果的全屏滾動(dòng)相冊(cè),涉及jQuery針對(duì)頁(yè)面圖片元素與鼠標(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(空白提示)效果,正常時(shí)文本框有提示文字,當(dāng)文本框獲得焦點(diǎn)時(shí)變?yōu)榭瞻?需要的朋友可以參考下2015-01-01基于jQuery實(shí)現(xiàn)文字打印動(dòng)態(tài)效果
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)文字打印動(dòng)態(tài)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04jQuery.uploadify文件上傳組件實(shí)例講解
這篇文章主要介紹了jQuery.uploadify文件上傳組件實(shí)例講解的相關(guān)資料,本文圖文并茂介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09