織夢(mèng)(dedecms)導(dǎo)航條dropdown.js的改進(jìn)(附演示demo)
來(lái)源:易賢網(wǎng) 閱讀:1479 次 日期:2016-06-29 10:03:16
溫馨提示:易賢網(wǎng)小編為您整理了“織夢(mèng)(dedecms)導(dǎo)航條dropdown.js的改進(jìn)(附演示demo)”,方便廣大網(wǎng)友查閱!

可以設(shè)置一個(gè)一直都顯示的二級(jí)菜單,修復(fù)了沒(méi)有二級(jí)菜單時(shí)鼠標(biāo)移上去仍然顯示上一個(gè)二級(jí)菜單的問(wèn)題.支持一級(jí)菜單鼠標(biāo)離開(kāi)事件,具體實(shí)現(xiàn)修改如下,附演示地址,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助

可以設(shè)置一個(gè)一直都顯示的二級(jí)菜單,修復(fù)了沒(méi)有二級(jí)菜單時(shí)鼠標(biāo)移上去仍然顯示上一個(gè)二級(jí)菜單的問(wèn)題.支持一級(jí)菜單鼠標(biāo)離開(kāi)事件

html代碼

代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>我的網(wǎng)站</title>

<meta name="description" content="" />

<meta name="keywords" content="" />

<link type="text/css" rel="stylesheet" />

</head>

<body>

<div class="w1000">

<div class="w960">

<!--f1-->

<!-- 菜單 -->

<div id="menu" class="menus">

<ul>

<!-- class='navselect'根據(jù)此屬性來(lái)判斷需要默認(rèn)顯示的二級(jí)菜單,以便在織夢(mèng)模板中通用 -->

<li class='navselect'><a href="/" rel='dropmenu1'>主 頁(yè)</a></li>

<li><a href='/a/jinrongzixun/'>金融資訊</a></li>

<li><a href='/a/gerenjinrong/' rel='dropmenu2'>個(gè)人金融</a></li>

<li><a href='/a/qiyejinrong/' rel='dropmenu4'>企業(yè)金融</a></li>

<li><a href='/a/caijingpindao/' rel='dropmenu5'>財(cái)經(jīng)頻道</a></li>

<li><a href='/a/zhifujiesuan/' rel='dropmenu6'>支付結(jié)算</a></li>

<li><a href='/a/yewushenqingtongdao/' rel='dropmenu7'>業(yè)務(wù)申請(qǐng)</a></li>

<li><a href='/a/zhongyaogonggao/' >重要公告</a></li>

<li><a href='/a/xinyongka/' >信用卡</a></li>

</ul>

</div>

<div class="menus_bottom">

</div>

<!-- //二級(jí)子類(lèi)下拉菜單 -->

<script type="text/javascript" src="dropdown.js"></script>

<ul id="dropmenu1" class="dropMenu">

<li><a href="/a/gerenjinrong/touzilicai/">首頁(yè)列表</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

</ul>

<ul id="dropmenu2" class="dropMenu">

<li><a href="/a/gerenjinrong/touzilicai/">投資理財(cái)</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/gerenjinrong/grdk/">個(gè)人貸款</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/gerenjinrong/gerenxiaofei/">個(gè)人消費(fèi)貸款</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/gerenjinrong/xinyong/">信用貸款</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/gerenjinrong/qichedaikuan/">汽車(chē)貸款</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/gerenjinrong/yishoulou/">一手樓按揭</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/gerenjinrong/ershoulou/">二手樓按揭</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/gerenjinrong/grjy/">個(gè)人經(jīng)營(yíng)貸款</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

</ul>

<ul id="dropmenu4" class="dropMenu">

<li><a href="/a/qiyejinrong/gongsirongzi/">公司融資</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/qiyejinrong/maoyirongzi/">貿(mào)易融資</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/qiyejinrong/gongsilicai/">公司理財(cái)</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/qiyejinrong/piaojuyewu/">票據(jù)業(yè)務(wù)</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/qiyejinrong/xiangmurongzi/">項(xiàng)目融資</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

</ul>

<ul id="dropmenu5" class="dropMenu">

<li><a href="/a/caijingpindao/huangjin/">黃金</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/caijingpindao/zhaiquan/">債券</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/caijingpindao/waihui/">外匯</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/caijingpindao/jijin/">基金</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

</ul>

<ul id="dropmenu6" class="dropMenu">

<li><a href="/a/zhifujiesuan/pos/">P0S支付</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

</ul>

<ul id="dropmenu7" class="dropMenu">

<li><a href="/a/yewushenqingtongdao/gerenyewu/">個(gè)人業(yè)務(wù)咨詢(xún)</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

<li><a href="/a/yewushenqingtongdao/gongsiyewu/">公司業(yè)務(wù)咨詢(xún)</a>&nbsp;&nbsp;|&nbsp;&nbsp;</li>

</ul>

<ul id="dropmenu8" class="dropMenu">

</ul>

<ul id="dropmenu3" class="dropMenu">

</ul>

<script type="text/javascript"> cssdropdown.startchrome("menu")</script>

</div>

</div>

<!--1000 end -->

</body>

</html>

dropdown.js

代碼如下:

var cssdropdown = {

disappeardelay: 250,

disablemenuclick: false,

enableswipe: 1,

enableiframeshim: 1,

dropmenuobj: null,

ie: document.all,

firefox: document.getElementById && !document.all,

swipetimer: undefined,

bottomclip: 0,

getposOffset: function(what, offsettype) {

var totaloffset = (offsettype == "left") ? what.offsetLeft: what.offsetTop;

var parentEl = what.offsetParent;

while (parentEl != null) {

totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft: totaloffset + parentEl.offsetTop;

parentEl = parentEl.offsetParent;

}

return totaloffset;

},

swipeeffect: function() {

if (this.bottomclip < parseInt(this.dropmenuobj.offsetHeight)) {

this.bottomclip += 10 + (this.bottomclip / 10);

this.dropmenuobj.style.clip = "rect(0 auto " + this.bottomclip + "px 0)";

} else return;

this.swipetimer = setTimeout("cssdropdown.swipeeffect()", 10);

},

//隱藏或者顯示二級(jí)菜單

showhide: function(obj, e) {

if (this.ie || this.firefox) this.dropmenuobj.style.left = this.dropmenuobj.style.top = "-500px";

if (e.type == "click" && obj.visibility == hidden || e.type == "mouseover") {

if (this.enableswipe == 1) {

if (typeof this.swipetimer != "undefined") clearTimeout(this.swipetimer);

obj.clip = "rect(0 auto 0 0)";

this.bottomclip = 0;

this.swipeeffect();

}

obj.visibility = "visible";

} else if (e.type == "click") obj.visibility = "hidden";

},

iecompattest: function() {

return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement: document.body;

},

clearbrowseredge: function(obj, whichedge) {

var edgeoffset = 0;

if (whichedge == "rightedge") {

var windowedge = this.ie && !window.opera ? this.iecompattest().scrollLeft + this.iecompattest().clientWidth - 15 : window.pageXOffset + window.innerWidth - 15;

this.dropmenuobj.contentmeasure = this.dropmenuobj.offsetWidth;

if (windowedge - this.dropmenuobj.x < this.dropmenuobj.contentmeasure) edgeoffset = this.dropmenuobj.contentmeasure - obj.offsetWidth;

} else {

var topedge = this.ie && !window.opera ? this.iecompattest().scrollTop: window.pageYOffset;

var windowedge = this.ie && !window.opera ? this.iecompattest().scrollTop + this.iecompattest().clientHeight - 15 : window.pageYOffset + window.innerHeight - 18;

this.dropmenuobj.contentmeasure = this.dropmenuobj.offsetHeight;

if (windowedge - this.dropmenuobj.y < this.dropmenuobj.contentmeasure) {

edgeoffset = this.dropmenuobj.contentmeasure + obj.offsetHeight;

if ((this.dropmenuobj.y - topedge) < this.dropmenuobj.contentmeasure) edgeoffset = this.dropmenuobj.y + obj.offsetHeight - topedge;

}

}

return edgeoffset;

},

//鼠標(biāo)移動(dòng)到一級(jí)菜單上執(zhí)行

dropit: function(obj, e, dropmenuID) {

//隱藏上次顯示的二級(jí)菜單

if (this.dropmenuobj != null) this.dropmenuobj.style.visibility = "hidden";

this.clearhidemenu();

if (this.ie || this.firefox) {

var me = this;

//一級(jí)菜單鼠標(biāo)離開(kāi)事件

obj.onmouseout = function() {

cssdropdown.delayhidemenu();

};

//一級(jí)菜單鼠標(biāo)點(diǎn)擊事件

obj.onclick = function() {

return ! cssdropdown.disablemenuclick

};

if (!dropmenuID) {

return;

}

this.dropmenuobj = document.getElementById(dropmenuID);

if (!this.dropmenuobj) return;

//為二級(jí)菜單綁定鼠標(biāo)移動(dòng)到事件

this.dropmenuobj.onmouseover = function() {

//移除從一級(jí)菜單離開(kāi)時(shí)觸發(fā)的方法,防止誤執(zhí)行

cssdropdown.clearhidemenu();

}

//為二級(jí)菜單綁定鼠標(biāo)離開(kāi)事件

this.dropmenuobj.onmouseout = function(e) {

cssdropdown.dynamichide(e);

}

//為二級(jí)菜單綁定鼠標(biāo)點(diǎn)擊事件

this.dropmenuobj.onclick = function() {

cssdropdown.delayhidemenu();

}

this.showhide(this.dropmenuobj.style, e);

//調(diào)整二級(jí)菜單位置,以免位置錯(cuò)亂

this.dropmenuobj.x = this.getposOffset(obj, "left");

this.dropmenuobj.y = this.getposOffset(obj, "top");

this.dropmenuobj.style.left = this.dropmenuobj.x - this.clearbrowseredge(obj, "rightedge") + "px";

this.dropmenuobj.style.top = this.dropmenuobj.y - this.clearbrowseredge(obj, "bottomedge") + obj.offsetHeight + 1 + "px";

this.positionshim();

}

},

positionshim: function() {

if (this.enableiframeshim && typeof this.shimobject != "undefined") {

if (this.dropmenuobj.style.visibility == "visible") {

this.shimobject.style.width = this.dropmenuobj.offsetWidth + "px";

this.shimobject.style.height = this.dropmenuobj.offsetHeight + "px";

this.shimobject.style.left = this.dropmenuobj.style.left;

this.shimobject.style.top = this.dropmenuobj.style.top;

}

this.shimobject.style.display = (this.dropmenuobj.style.visibility == "visible") ? "block": "none";

}

},

hideshim: function() {

if (this.enableiframeshim && typeof this.shimobject != "undefined") this.shimobject.style.display = 'none';

},

contains_firefox: function(a, b) {

while (b.parentNode) if ((b = b.parentNode) == a) return true;

return false;

},

//隱藏二級(jí)菜單,兼容性處理

dynamichide: function(e) {

var evtobj = window.event ? window.event: e;

//確認(rèn)是鼠標(biāo)離開(kāi)事件,避免誤觸發(fā)

if (this.ie && !this.dropmenuobj.contains(evtobj.toElement)) this.delayhidemenu();

else if (this.firefox && e.currentTarget != evtobj.relatedTarget && !this.contains_firefox(evtobj.currentTarget, evtobj.relatedTarget)) this.delayhidemenu();

},

//鼠標(biāo)點(diǎn)擊菜單,或者離開(kāi)菜單時(shí)執(zhí)行

delayhidemenu: function() {

this.delayhide = setTimeout(function() {

cssdropdown.dropmenuobj.style.visibility = 'hidden';

cssdropdown.hideshim();

cssdropdown.showAlways();

},

this.disappeardelay);

},

//移除定時(shí)方法

clearhidemenu: function() {

if (this.delayhide != "undefined") clearTimeout(this.delayhide);

},

//顯示默認(rèn)被選中的一級(jí)菜單

showAlways: function() {

if (this.always) {

this.always.onmouseover({

type: "mouseover"

});

}

},

//初始化

startchrome: function() {

for (var ids = 0; ids < arguments.length; ids++) {

var menuitems = document.getElementById(arguments[ids]).getElementsByTagName("a");

for (var i = 0; i < menuitems.length; i++) {

var relvalue = menuitems[i].getAttribute("rel");

//綁定鼠標(biāo)移動(dòng)到事件

menuitems[i].onmouseover = function(e) {

var event = typeof e != "undefined" ? e: window.event;

cssdropdown.dropit(this, event, this.getAttribute("rel"));

};

//顯示默認(rèn)被選中的一級(jí)菜單

if (!this.always && menuitems[i].parentNode.getAttribute("class") == "navselect") {

this.always = menuitems[i];

this.showAlways();

}

}

}

if (window.createPopup && !window.XmlHttpRequest) {

document.write('<IFRAME id="iframeshim" src="" style="display: none; left: 0; top: 0; z-index: 90; position: absolute; filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)" frameBorder="0" scrolling="no"></IFRAME>');

this.shimobject = document.getElementById("iframeshim");

}

}

}

更多信息請(qǐng)查看CMS教程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!
相關(guān)閱讀CMS教程

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)