這是一個非常簡單的選單,雖然簡單,但我們可以從這個範例中學習到一些關於CSS和JavaScripts的一些有關知識,對於認識下拉式選單的製作原理和基礎有很大的好處。在這個範例中,我用到了DIV標識來作為我的下拉選單列,而用一個TABLE來做我的選單頭。原理就是透過辨識滑鼠移動來開關下拉選單列的顯示屬性。
下面是這個DIV選單的效果,你可點選頁面任何空白地來取消下拉選單的顯示。
雜誌技術站點入口網站個人收藏站點
天極網Yesky.com
電腦商情報
新潮電子
新浪網Sina
搜狐Sohu
網易Netease
耗子網路程式設計站
中國同學錄
中國軟體開發網
好了,如果我告訴你,這樣的效果也就幾十行的程式碼,你信嗎?不管怎麼樣,讓我們來一步一步學習這個選單是怎麼做出來的。 Step-by-Step,Let's go.
第一步,你需要定義一下選單項目和選單列的CSS層疊樣式表,這裡,如果你不知道CSS是什麼意思,請參閱《電腦報網站》的有關CSS的教學。我們定義兩個CSS的Class,一個是Meun,另一個是SubMenu, Menu定義了顯示在選單頂上的樣式,而Submenu定義了下拉選單列的顯示樣式。這裡,需要注意的是Submenu中的「position:absolute;width:200」CSS屬性,這是必須的,因為這決定了我們顯示這個Submenu的位置。而其它的CSS的屬性是可要可不要的。下面是這兩個CSS Class的描述,你可以把下面這段話放在網的<head></head>之間,或是<body></body>之間。
<STYLE>
<!--
.menu {background-color:green;width:120; height:20;color: white; text-align: center;font-size:9pt;font-weight:bolder}
.submenu {position:absolute;top:40;background-color:lightyellow;width:180; font-size:9pt}
-->
</STYLE>
第二步,我們來看看隱藏和顯示下拉式選單列的Javascript的程式碼。這段程式碼非常簡單,只要學過一點JavaScripts的人應該是很容易看懂的。如果你不懂Javascript的話,也請參考《電腦報網站》上的有關JavaScripts的文章。這段程式碼的意思是,無論什麼時候,只要滑鼠一進入選單項目(Menu)元件中,那麼它的下拉式選單列就會被一個叫Show函數顯現出來。這個Show函數主要功能是顯示目前的下拉式選單列,並隱藏其它的選單列,並把目前所顯示的選單項目放入變數cm中。另外,在這裡,我還加入了一個簡單的滑鼠點擊事件(onclick)句柄,當滑鼠點擊網頁時,就隱藏所有的下拉式選單列。下面,我給了整個Javascript的程序,其中有一個叫getPos 的函數,這是用來取得下拉式選單列的顯示位置的。
<SCRIPT>
var cm=null;
document.onclick = new Function("show(null)")
function getPos(el,sProp)
{var iPos = 0
while (el!=null)
{iPos+=el["offset" + sProp]
el = el.offsetParent}
return iPos}
function show(el,m)
{if (m) {m.style.display=' ';
m.style.pixelLeft = getPos(el,"Left")
m.style.pixelTop = getPos(el,"Top") + el.offsetHeight}
if ((m!=cm) && (cm)) cm.style.display='none' cm=m }
</SCRIPT>