日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

[網(wǎng)頁設(shè)計][Web開發(fā)][JS腳本]自適應(yīng)分辨率可擴(kuò)

系統(tǒng) 2297 0

( http://www.pconline.com.cn/pcedu/sj/wz/other/0308/210199.html )

■ 自適應(yīng)分辨率可擴(kuò)展二層JS下拉菜單

  序言:

  隨著互聯(lián)網(wǎng)的普及和網(wǎng)頁制作技術(shù)的發(fā)展,越來越多的網(wǎng)友開始制作自己的網(wǎng)站。做為網(wǎng)站最重要的部分—導(dǎo)航菜單也出現(xiàn)了各式各樣的設(shè)計和制作方法。其中下拉式導(dǎo)航菜單已經(jīng)成為多欄目大信息量網(wǎng)站的首選導(dǎo)航方式。那么,在下面我將簡單介紹一下眾多下拉菜單制作方法中完全使用JS自動生成的“自適應(yīng)分辨率可擴(kuò)展二層JS下拉菜單”的工作原理和使用方法。


  1、 S下拉菜單原理


  下拉菜單實(shí)際上就是在開始的時候顯示一級或者說是主菜單(圖一)。當(dāng)觸發(fā)條件(例如:鼠標(biāo)移動到上面時)顯示次級菜單(圖二)。



圖一



圖二


  那么如何實(shí)現(xiàn)這樣的效果呢。其實(shí)很簡單。所有的下拉菜單都是通過圖層的顯隱來實(shí)現(xiàn)的。在文件下載的時候,其實(shí)主菜單和次級菜單都以經(jīng)形成或者說下載到了客戶端也就是你的機(jī)器里。只是次級菜單被隱藏起來。隱藏的方法一般是使用javascript 配合css控制次級菜單的圖層的屬性visibility為隱藏。所以在開始的使用你是看不見次級菜單的。當(dāng)滿足觸發(fā)條件(例如:鼠標(biāo)移動到上面)時,在使用javascript來控制次級菜單顯示。當(dāng)在次滿足觸發(fā)條件時(例如:鼠標(biāo)移開),控制次級菜單隱藏。


  我們現(xiàn)在講的這個“自適應(yīng)分辨率可擴(kuò)展二層JS下拉菜單”可以自動適應(yīng)瀏覽器分辨率的改變始終保持相對位置。可以方便的自己定制菜單顯示內(nèi)容及連接頁面??梢噪S意擴(kuò)充主導(dǎo)航和次導(dǎo)航的欄目個數(shù)。可以自由改變連接和導(dǎo)航表格的樣式和外觀等等。


  2、"自適應(yīng)分辨率可擴(kuò)展二層JS下拉菜單"js代碼詳解



//--------------- 主導(dǎo)航條內(nèi)容 ------------//
var mainLayer=new Array("藍(lán)色理想","動意營造");//主導(dǎo)航欄目


//--------------- 次導(dǎo)航條內(nèi)容 ------------//
var subLayer0=new Array("論壇","文獻(xiàn)"); //導(dǎo)航欄目一下的次級欄目
var subLayerHttp0=new Array("#","#");//主導(dǎo)航欄目一下的次級欄目連接地址
var subLayer1=new Array("論壇","文獻(xiàn)");//導(dǎo)航欄目二的次級欄目
var subLayerHttp1=new Array("#","#");//主導(dǎo)航欄目二的次級欄目連接地址

//--------------- 主導(dǎo)航條Table參數(shù)調(diào)整 ------------//
var mainTableTdWidth=100; //每個TD的寬度,調(diào)整主導(dǎo)航內(nèi)容間距
var mainTableBorder=0; //調(diào)整主導(dǎo)航表格邊框?qū)挾?
var mainTableCellspacing=0; //調(diào)整主導(dǎo)航表格Cellspacing
var mainTableCellpadding=1; //調(diào)整主導(dǎo)航表格Cellpadding
var mainTableBgcolor="#000000"; //調(diào)整主導(dǎo)航表格背景色
var mainTableBordercolor=""; //調(diào)整主導(dǎo)航表格編框顏色
var mainTableBackgroundImg=""; //調(diào)整主導(dǎo)航表格背景圖片url地址
var hrefClassName="link" //調(diào)整url風(fēng)格樣式
var mainTableTdBgcolor="B2CBCF"; //調(diào)整主導(dǎo)航表格Td色

//--------------- 次導(dǎo)航條Table參數(shù)調(diào)整 ------------//
var subTableBorder=0; //調(diào)整次導(dǎo)航條表格邊框?qū)挾?
var subTableCellspacing=0; //調(diào)整次導(dǎo)航條表格Cellspacing
var subTableCellpadding=1; //調(diào)整次導(dǎo)航條表格Cellpadding
var subTableBgcolor="#000000"; //調(diào)整次導(dǎo)航條表格背景色
var subTableBordercolor=""; //次導(dǎo)航條表格編框顏色
var subTableBackgroundImg=""; //次導(dǎo)航條表格背景圖片url地址
var subTableTdBgcolor="B2CBCF"; //調(diào)整次導(dǎo)航表格Td色
var sbuTabbleTop=21; //次導(dǎo)航表格上下微調(diào)
var sbuTabbleLeft=-1; //次導(dǎo)航表格左右微調(diào)


//--------------- 系統(tǒng)參數(shù)*請勿調(diào)整 ------------//
var layerMax=mainLayer.length+10;
var layerName="index";


//--------------- 生成下拉菜單 ------------//
function createMainLayer(){
document.write("<table border=0 cellspacing=0 cellpadding=0><tr><td><div id='wall' onmouseout=layervib('visible','"+layerMax+"') style='position:relative; left:0px; top:0px; width:100%; z-index:1' ><table width="+mainLayer.length*mainTableTdWidth+" border='"+mainTableBorder+"' cellspacing='"+mainTableCellpadding+"' cellpadding='"+mainTableCellpadding+"' bgcolor='"+mainTableBgcolor+"' bordercolor='"+mainTableBordercolor+"' background='"+mainTableBackgroundImg+"'><tr>");
for(i=0;i<mainLayer.length;i++){
document.write("<td width='"+mainTableTdWidth+"' bgcolor='"+mainTableTdBgcolor+"' class='"+hrefClassName+"' onmouseover=layervib('visible','"+i+"')>&nbsp;<a href='#'>"+mainLayer[i]+"</a></td>");
}
document.write("</tr></table>");

for(j=0;j<mainLayer.length;j++){
createSubLayer(j);
}
document.write("</div></table></td></tr></table>");
}

//--------------- 生成每項(xiàng)下拉菜單內(nèi)容 ------------//
function createSubLayer(num){
var subLayerName= layerName +num;
var subLayerLeft=(mainTableTdWidth*num)+mainTableCellpadding+mainTableBorder;
var subLayerList=eval("subLayer"+num);
var subLayerHttpList=eval("subLayerHttp"+num);
document.write("<div id='"+subLayerName+"' style='position:absolute; left:"+(subLayerLeft+sbuTabbleLeft)+"px; top:"+((mainTableBorder+mainTableCellspacing+mainTableCellpadding)*2+sbuTabbleTop)+"px; z-index:2; height: 24px; visibility: hidden' onmouseover=layervib('visible','"+num+"') onmouseout=layervib('visible','"+layerMax+"')>");
if(subLayerList.length!=0){
document.write("<table width='100px' border='"+subTableBorder+"' cellspacing='"+subTableCellpadding+"' cellpadding='"+subTableCellpadding+"' bgcolor='"+subTableBgcolor+"' bordercolor='"+subTableBordercolor+"' background='"+subTableBackgroundImg+"'")
for(h=0;h<subLayerList.length;h++){

document.write("<tr><td bgcolor='"+subTableTdBgcolor+"' width='100%' class='link'>&nbsp;<a href='"+ subLayerHttpList [h]+"' class='link'>"+subLayerList[h]+"</a>&nbsp;</td></tr>");
}
document.write("</table>");
}
document.write("</div>");

}


//------------------------------次菜單顯隱控制--------------------------//
function layervib(type,num){
var H=type;
var temp=(H='visible'?'hidden':'visible')
for(var i=0;i<mainLayer.length;i++){
var E=eval('document.all.index'+i+'.style');
var H=eval(i);
if(i==num){E.visibility=type}else{E.visibility=temp};
}
}


  3、"自適應(yīng)分辨率可擴(kuò)展二層JS下拉菜單"js代碼使用方法。


  (1) 將上面的代碼存儲為js_daohang.js.放在和調(diào)用的頁面同一個目錄下。
  (2) 在需要使用的葉面中在如下位置添加<script language=javascript src=js_daohang.js>


<html>
<head>
<title>平安證券柜臺系統(tǒng)...</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="text.css" type="text/css">
<script language=javascript src=js_daohang.js>
</head>

 ?。?)在需要顯示下拉菜單的地方使用

<script language=javascript>
createMainLayer();
</script>

  來產(chǎn)生菜單。如下例??梢噪S意擺放到頁面的任何位置。


<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="300">&nbsp;</td>
<td width="71%" align="center">
<script language=javascript>
createMainLayer();
</script>
</td>
</tr>
</table>

  (4)、如何添加新的主菜單及次級菜單的欄目。

  假設(shè)我們要在已有的欄目里新增加一個“七色鳥”欄目。下面有“論壇”和“文獻(xiàn)”兩個次級欄目。那么我么首先要在代碼的如下部分添加“七色鳥”。


var mainLayer=new Array("藍(lán)色理想","動意營造","七色鳥");//主導(dǎo)航欄目
0 1 2


  然后在如下的位置添加“論壇”和“文獻(xiàn)”欄目及連接地址。


var subLayer0=new Array("論壇","文獻(xiàn)"); //導(dǎo)航欄目一下的次級欄目
var subLayerHttp0=new Array("#","#");//主導(dǎo)航欄目一下的次級欄目連接地址
var subLayer1=new Array("論壇","文獻(xiàn)");//導(dǎo)航欄目二的次級欄目
var subLayerHttp1=new Array("#","#");//主導(dǎo)航欄目二的次級欄目連接地址
var subLayer2=new Array("論壇","文獻(xiàn)");//導(dǎo)航欄目三的次級欄目
var subLayerHttp2=new Array("#","#");//主導(dǎo)航欄目三的次級欄目連接地址


  注意:藍(lán)色部分是需要新添加的部分。紅色部分是要修改的部分。要和上面的編號一一對應(yīng)。 (5)、其他細(xì)節(jié)調(diào)整請參考代碼詳解部分。


  4、附注及擴(kuò)充。


  代碼中主要使用的函數(shù)及方法詳解。

Document.write("tmp")頁面中寫入tmp.
var subLayerHttp1=new Array();定義一個新的數(shù)組subLayerHttp1.
For(I=0;I<tmp;I++){語句}設(shè)置I=0,當(dāng)I的值小于tmp的值時執(zhí)行語句,同時I的值加1。
var temp=(H=值1?值2:值3)當(dāng)H的值等于值1的時候temp等于值2。反之temp的值等于值3。


增強(qiáng)功能。
//--------------- 系統(tǒng)參數(shù)*請勿調(diào)整 ------------//
var layerMax=mainLayer.length+10;
var layerName="index"


可以設(shè)置layerName=其他字段以生成新的下拉菜單。使頁面內(nèi)共存兩個下拉菜單。

[網(wǎng)頁設(shè)計][Web開發(fā)][JS腳本]自適應(yīng)分辨率可擴(kuò)展二層JS下拉菜單


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 洛浦县| 荆州市| 三明市| 江西省| 全椒县| 渭南市| 磐石市| 遂溪县| 潼南县| 永宁县| 和静县| 拉孜县| 定西市| 鲁甸县| 河池市| 广丰县| 北京市| 靖西县| 朝阳市| 金昌市| 汤原县| 嘉黎县| 镇赉县| 六盘水市| 商河县| 永平县| 阿拉善左旗| 张家港市| 通渭县| 五家渠市| 玉林市| 富蕴县| 兴海县| 吉安市| 平原县| 黎川县| 布尔津县| 方正县| 乐山市| 忻城县| 长春市|