自由添加菜單,類似易趣的管理頁面中的那些小菜單.javascript實現,可跨多種瀏覽器
類似易趣裏"我的易趣"中的那些小的下拉菜單.
用javascirpt 實現,
支持多瀏覽器,(在IE6和FireFox中調試成功)
以下是menu.js中的代碼
var aryMenu=new Array();
var vView;
var vHide;
var menudiv;
if(window.navigator.appName.indexOf("icrosoft")>=1){
vHide="hidden";
vView="visible";
}
else{
vHide="hide";
vView="show";
}
function addMenu(menuID){
aryMenu[menuID]=new Array();
}
function addLink(menuID,strLink,strText){
addMenuHtml(menuID,strLink,"<a href=/""+strLink+"/">"+strText+"</a>");
}
function addMenuHtml(menuID,strLink,strHtml){
aryMenu[menuID][strLink]=strHtml;
}
function menuView(menuID,thisevt){
if(document.all){
menudiv=document.all["menuLayer"];
}
else{
menudiv=document.getElementById("menuLayer");
}
var strHtml="<table width='100%' bgcolor='#FFCC99'>"
for(var strLink in aryMenu[menuID]){
strHtml=strHtml+"<tr><td>"+aryMenu[menuID][strLink]+"</td></tr>";
}
strHtml=strHtml+"</table>";
menudiv.innerHTML=strHtml;
divView(thisevt);
}
function check_mouse(thisevt){
var cx;
var cy;
var divobj;
if(document.all){
cx=document.body.scrollLeft+window.event.clientX;
cy=document.body.scrollTop+window.event.clientY;
}
else{
cx=thisevt.pageX;
cy=thisevt.pageY;
}
if(cx<menudiv.offsetLeft || cx>menudiv.offsetLeft+menudiv.offsetWidth || cy<menudiv.offsetTop || cy>menudiv.offsetTop+menudiv.offsetHeight){
if(menudiv.style){divobj=menudiv.style;vHide="hidden";}else{divobj=menudiv;vHide="hide";}
divobj.visibility="hidden";
document.οnmοusemοve=null;
}
}
function divView(thisevt){
var cx;
var cy;
var divobj;
if(document.all){
cx=document.body.scrollLeft+window.event.clientX-80;
cy=document.body.scrollTop+window.event.clientY-10;
}
else{
cx=thisevt.pageX-80;
cy=thisevt.pageY-10;
}
while(cx<document.body.scrollLeft){cx++;}
while(cy<document.body.scrollTop){cy++;}
while(cy>document.body.offsetHeight+document.body.scrollTop-menudiv.offsetHeight){cy--}
if(menudiv.style){divobj=menudiv.style;vView="visible";}else{divobj=menudiv;vView="show";}
divobj.left=cx;
divobj.top=cy;
divobj.visibility=vView;
document.οnmοusemοve=check_mouse;
}
addMenuBTN(menuID){
document.writeln("<img src=/"/menu.gif/" style=/"cursor:hand/" οnclick=/"menuView("+menuID+",event);/">");
}
document.writeln("<div id=/"menuLayer/" style=/"visibility:"+vHide+";BORDER-RIGHT: #000000 1px; BORDER-TOP: #000000 1px; Z-INDEX: 1;WIDTH:140px; LEFT: 53px; OVERFLOW: auto; BORDER-LEFT: #000000 1px; BORDER-BOTTOM: #000000 1px; POSITION: absolute; TOP: 70px; BACKGROUND-COLOR: #f5f5f5; layer-background-color: #F5F5F5/"></div>");
在需要使用的網頁的<body></body>之間加入<script language=javscript src=menu.js></script>
然後
<script>
addMenu(1098); //添加一個菜單.
addLink(1098,“http://www.baidu.com“,“百度“);//在1098菜單中添加一個鏈接
addLink(1098,“http://www.sohu.com“,“搜狐“);//在1098菜單中添加一個鏈接
addLink(1098,“http://www.sina.com.com“,“新浪“);//在1098菜單中添加一個鏈接
addLink(1098,“http://www.163.com“,“網易“);//在1098菜單中添加一個鏈接
addLink(1098,“http://www.csdn.net“,“CSDN“);//在1098菜單中添加一個鏈接
addMenuBTN(1098);//在當前位置顯示一個圖片按鈕,點擊這個安鈕時,顯示1098這個菜單
</script>
用javascirpt 實現,
支持多瀏覽器,(在IE6和FireFox中調試成功)
以下是menu.js中的代碼
var aryMenu=new Array();
var vView;
var vHide;
var menudiv;
if(window.navigator.appName.indexOf("icrosoft")>=1){
vHide="hidden";
vView="visible";
}
else{
vHide="hide";
vView="show";
}
function addMenu(menuID){
aryMenu[menuID]=new Array();
}
function addLink(menuID,strLink,strText){
addMenuHtml(menuID,strLink,"<a href=/""+strLink+"/">"+strText+"</a>");
}
function addMenuHtml(menuID,strLink,strHtml){
aryMenu[menuID][strLink]=strHtml;
}
function menuView(menuID,thisevt){
if(document.all){
menudiv=document.all["menuLayer"];
}
else{
menudiv=document.getElementById("menuLayer");
}
var strHtml="<table width='100%' bgcolor='#FFCC99'>"
for(var strLink in aryMenu[menuID]){
strHtml=strHtml+"<tr><td>"+aryMenu[menuID][strLink]+"</td></tr>";
}
strHtml=strHtml+"</table>";
menudiv.innerHTML=strHtml;
divView(thisevt);
}
function check_mouse(thisevt){
var cx;
var cy;
var divobj;
if(document.all){
cx=document.body.scrollLeft+window.event.clientX;
cy=document.body.scrollTop+window.event.clientY;
}
else{
cx=thisevt.pageX;
cy=thisevt.pageY;
}
if(cx<menudiv.offsetLeft || cx>menudiv.offsetLeft+menudiv.offsetWidth || cy<menudiv.offsetTop || cy>menudiv.offsetTop+menudiv.offsetHeight){
if(menudiv.style){divobj=menudiv.style;vHide="hidden";}else{divobj=menudiv;vHide="hide";}
divobj.visibility="hidden";
document.οnmοusemοve=null;
}
}
function divView(thisevt){
var cx;
var cy;
var divobj;
if(document.all){
cx=document.body.scrollLeft+window.event.clientX-80;
cy=document.body.scrollTop+window.event.clientY-10;
}
else{
cx=thisevt.pageX-80;
cy=thisevt.pageY-10;
}
while(cx<document.body.scrollLeft){cx++;}
while(cy<document.body.scrollTop){cy++;}
while(cy>document.body.offsetHeight+document.body.scrollTop-menudiv.offsetHeight){cy--}
if(menudiv.style){divobj=menudiv.style;vView="visible";}else{divobj=menudiv;vView="show";}
divobj.left=cx;
divobj.top=cy;
divobj.visibility=vView;
document.οnmοusemοve=check_mouse;
}
addMenuBTN(menuID){
document.writeln("<img src=/"/menu.gif/" style=/"cursor:hand/" οnclick=/"menuView("+menuID+",event);/">");
}
document.writeln("<div id=/"menuLayer/" style=/"visibility:"+vHide+";BORDER-RIGHT: #000000 1px; BORDER-TOP: #000000 1px; Z-INDEX: 1;WIDTH:140px; LEFT: 53px; OVERFLOW: auto; BORDER-LEFT: #000000 1px; BORDER-BOTTOM: #000000 1px; POSITION: absolute; TOP: 70px; BACKGROUND-COLOR: #f5f5f5; layer-background-color: #F5F5F5/"></div>");
在需要使用的網頁的<body></body>之間加入<script language=javscript src=menu.js></script>
然後
<script>
addMenu(1098); //添加一個菜單.
addLink(1098,“http://www.baidu.com“,“百度“);//在1098菜單中添加一個鏈接
addLink(1098,“http://www.sohu.com“,“搜狐“);//在1098菜單中添加一個鏈接
addLink(1098,“http://www.sina.com.com“,“新浪“);//在1098菜單中添加一個鏈接
addLink(1098,“http://www.163.com“,“網易“);//在1098菜單中添加一個鏈接
addLink(1098,“http://www.csdn.net“,“CSDN“);//在1098菜單中添加一個鏈接
addMenuBTN(1098);//在當前位置顯示一個圖片按鈕,點擊這個安鈕時,顯示1098這個菜單
</script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.