一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

通用的二級菜單代碼(css+javascript)

]但在《CSS二級菜單》中,如果一級菜單中的超鏈接是#,那么只要單擊該一級菜單,那么與這個一級菜單對應(yīng)的二級菜單就會一直顯示在網(wǎng)頁中,不能隱藏,是一個小小的bug。
后來仔細(xì)的想了一想,其實(shí),無論是什么樣的二級菜單,原理都是一樣的:
1、每一個一級菜單都會對應(yīng)一個層,而這個層里放著的就是該一級菜單對應(yīng)的二級菜單。
2、默認(rèn)情況下,二級菜單這個層是隱藏的,在CSS中將層的display屬性值設(shè)為none,可以達(dá)到這一目的。
3、當(dāng)鼠標(biāo)放在一級菜單上時,將對應(yīng)的二級菜單層顯示出來,在CSS中將層的display屬性值設(shè)為block,可以達(dá)到這一目的。
4、當(dāng)鼠標(biāo)從一級菜單中移開時,對應(yīng)的二級菜單層隱藏。
5、當(dāng)然,如果鼠標(biāo)從一級菜單移到二級菜單上時,二級菜單也不能隱藏,因此,對二級菜單而言,也必須將其設(shè)為,當(dāng)鼠標(biāo)在其上時顯示當(dāng)前層,當(dāng)鼠標(biāo)移開時隱藏當(dāng)前層。
好了,有了基本思路之后,我們就可以開始動手創(chuàng)建二級菜單了。
首先,創(chuàng)建一個層,這個層用于包含所有的一級菜單和二級菜單。之所以要創(chuàng)建這個層,是為了可以方便地對整個菜單進(jìn)行設(shè)置,比較說讓菜單層中顯示,或讓菜單居右顯示等等,
代碼如下所示:
復(fù)制代碼 代碼如下:
<div id="menu">
</div>

然后,在menu層里添加一級菜單,這個一級菜單可以是直接的超鏈接,也可以是span或div。也許有人要問,一級菜單不就是超鏈接嗎?的確可以這么說,但是你也同樣可以將超鏈接作用在span或div上,而使用span或div還有一個好處,這個好處在后面再說,在這里,我們還是簡單地添加幾個超鏈接吧。
復(fù)制代碼 代碼如下:
<div id="menu">
<a href="#">菜單一</a> | 
<a href="#">菜單二</a> | 
</div>

第三步,在menu層里添加二級菜單層,如下所示。
復(fù)制代碼 代碼如下:
<div id="menu">
<a href="#">菜單一</a> | 
<a href="#">菜單二</a> | 
<div id="div1">
<a href="#">子菜單一</a>
</div>
<div id="div2">
<a href="#">子菜單一</a>
<a href="#">子菜單二</a>
</div>
</div>

為什么要將二級菜單層放在menu層中呢?因?yàn)檫@樣做可以方便的設(shè)置二級菜單層的位置。

第四步,使用CSS設(shè)置二級菜單層的位置。通常設(shè)置一個層的位置都會使用到CSS的position屬性,這個屬性值常用的有relative、absolute和fixed三種。其中absolute為絕對定位,使用這種方式設(shè)置層的位置時,該層是以整個<body>為基礎(chǔ)定位,因此,如果瀏覽器窗口大小改變時,層的位置是會變動的;fixed是相對定位,而這個“相對”是相對瀏覽器窗口的定位,假設(shè)層離瀏覽器窗口頂部10像素時,無論怎么拖動滾動條,這個層都會在離瀏覽器窗口頂部10像素的位置出現(xiàn),即會一直顯示在瀏覽器窗口中。relative也是相對定位,在這個相對定位是相對這個層的原來的位置的定位。在relative模式下,瀏覽器會先輸出層的位置,再相對這個層的位置進(jìn)行偏移,這也就是我們?yōu)槭裁磳⒍壊藛螌臃旁趍enu層中的原因。因?yàn)槎壊藛螌右坏┊a(chǎn)生,它只能相對以前的位置偏移,所以瀏覽器窗口再怎么變化,也不會影響到層的位置。由于二級菜單層所在位置不同,所以要為每一個二級菜單層設(shè)置不同的偏移量,如下所示。
復(fù)制代碼 代碼如下:
<style type="text/css">
#div1
{
display:none;
position:relative;
left:0px;
top:0px;
width:320px;
}
#div2
{
display:none;
position:relative;
left:50px;
top:0px;
width:320px;
}
</style>
<div id="menu">
<a href="#">菜單一</a> | 
<a href="#">菜單二</a> | 
<div id="div1">
<a href="#">子菜單一</a>
</div>
<div id="div2">
<a href="#">子菜單一</a>
<a href="#">子菜單二</a>
</div>
</div>


在以上代碼中,CSS中的display將層設(shè)為隱藏、postion將層設(shè)為相對原來位置偏移、left和top設(shè)置偏移量,width設(shè)置層的寬度。當(dāng)然,只要你愿意,還可以設(shè)置其他屬性,如字體大小等,這就不多介紹了。在這里,需要注意的是,二級菜單層不能離一級菜單太遠(yuǎn)。前面介紹過,當(dāng)鼠標(biāo)從一級菜單移到二級菜單中時,二級菜單層是不能隱藏的。如果一級菜單離二級菜單層太遠(yuǎn),鼠標(biāo)剛從一級菜單上移開時,二級菜單層就已經(jīng)隱藏了,這就達(dá)不到二級菜單的目的了。因此,必須要保證鼠標(biāo)從一級菜單移到二級菜單層上時,二級菜單層來不及隱藏。這就需要使用到二個技巧了:第一、二級菜單層不能離一級菜單太遠(yuǎn),如本例所示,二級菜單層的top屬性值為0px,這樣鼠標(biāo)從一級菜單移到二級菜單上時,二級菜單來不及隱藏。第二、將一級菜單放在<div>或<span>中,這樣只要鼠標(biāo)在<div>或<span>上時,二級菜單層都不會隱藏,這樣看起來一級菜單和二級菜單層之間似乎挺遠(yuǎn)的,但事實(shí)二級菜單層和一級菜單層之間是十分相近,甚至有可能這兩個層之間都有重疊。

第五步、設(shè)置一級菜單和二級菜單層的onmouseover和onmouseout屬性,用于控制二級菜單層的顯示和隱藏,這主要是設(shè)置二級菜單層的display屬性值。在這里就不多介紹了,完整的源代碼如下所示:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
以上代碼在IE 7、Opera 9.6、Firefox 3、Flock 2下運(yùn)行正常,源代碼下載
http://xiazai.jb51.NET/200906/yuanma/js_erjicaidan.rar

JavaScript技術(shù)通用的二級菜單代碼(css+javascript),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产免费一区二区三区在线观看 | 色91在线| 国内精品亚洲 | 国产成人 免费观看 | 水蜜桃一二二区视在线 | 精品国产高清在线看国产 | 精品久久中文字幕有码 | 精品久久久久久久一区二区伦理 | 久久国产精品久久久 | 日韩视频久久 | 国产一区二区视频在线 | 国产资源在线视频 | 国产成人99久久亚洲综合精品 | 日本不卡一区二区三区视频 | 国产综合激情在线亚洲第一页 | 国产91精选在线观看麻豆 | 男人女人做刺激视频免费 | 亚洲精品美女久久久aaa | 日韩精品国产自在久久现线拍 | 黄色小视频在线观看 | 一区二区三区中文国产亚洲 | 牛牛本精品99久久精品88m | 久久综合狠狠综合狠狠 | 美女免费精品视频在线观看 | 久久一精品 | 日本99热 | 国产色婷婷精品综合在线 | 伊人2| 久久久久久久一精品 | 婷婷四房综合激情五月在线 | 中文字幕一二三区 | 2021国产情侣真实露脸在线 | 91情侣高清精品国产 | 久久成年人视频 | 国产精品久久久久久一级毛片 | 国语精品91自产拍在线观看二区 | 国产成人综合网在线播放 | 国内外成人在线视频 | 成人在线亚洲 | 草草线在成年免费视频网站 | 国产超91|