手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >仿DVBBS下拉菜单效果 jb51修正无错
仿DVBBS下拉菜单效果 jb51修正无错
摘要:1、将存为menu.htm格式文件以下为代码内容:复制代码代码如下:.menuskin{BORDER-RIGHT:#CBD7E91pxsol...

1、将存为menu.htm格式文件以下为代码内容:

复制代码 代码如下:

<html>

<head>

<style>

.menuskin{

BORDER-RIGHT:#CBD7E91pxsolid;BORDER-TOP:#CBD7E91pxsolid;BACKGROUND-IMAGE:url(image/menubg.gif);VISIBILITY:hidden;FONT:12pxTahoma,Verdana;BORDER-LEFT:#CBD7E91pxsolid;BORDER-BOTTOM:#CBD7E91pxsolid;POSITION:absolute;BACKGROUND-COLOR:#ffffff

}

.menuskinA{

PADDING-RIGHT:10px;PADDING-LEFT:25px;COLOR:#3A4273;TEXT-DECORATION:none

}

#mouseoverstyle{

BORDER-RIGHT:#597db51pxsolid;PADDING-RIGHT:0px;BORDER-TOP:#597db51pxsolid;PADDING-LEFT:0px;PADDING-BOTTOM:0px;MARGIN:2px;BORDER-LEFT:#597db51pxsolid;PADDING-TOP:0px;BORDER-BOTTOM:#597db51pxsolid;BACKGROUND-COLOR:#c9d5e7

}

#mouseoverstyleA{

COLOR:black

}

.menuitems{

PADDING-RIGHT:1px;PADDING-LEFT:1px;PADDING-BOTTOM:1px;MARGIN:2px;WORD-BREAK:keep-all;PADDING-TOP:1px

}

</style>

<scripttype="text/javascript"src="menu.js"></script>

</head>

<bodyvlink='#333333'link='#333333'>

<divclass=menuskinid=popmenuonmouseover="clearhidemenu();highlightmenu(event,'on')"onmouseout="highlightmenu(event,'off');dynamichide(event)"style="Z-index:100"></div>

<center>

<ahref="###"onMouseOver="showmenu(event,'<divclass=menuitems><ahref=http://www.gyct.cn/article/index.asp>网络文摘</a></div><divclass=menuitems><ahref=http://www.gyct.cn/article/index.asp>网络文摘</a></div>')">思客秀</a>

</center>

</body>

</html>

2、将下面代码存为menu.js文件,并与menu.htm放到同级目录下

复制代码 代码如下:

//Pop-itmenu-ByDynamicDrive-ModifiedbyWbird

//ForfullsourcecodeandmoreDHTMLscripts,visithttp://www.gyct.cn

//ThiscreditMUSTstayintactforuse

varmenuOffX=0//菜单距连接文字最左端距离

varmenuOffY=18//菜单距连接文字顶端距离

varvBobjects=newArray();

varfo_shadows=newArray();

////Noneedtoeditbeyondhere

varie4=document.all&&navigator.userAgent.indexOf("Opera")==-1

varns6=document.getElementById&&!document.all

varns4=document.layers

functionMM_findObj(n,d){

varp,i,x;if(!d)d=document;if((p=n.indexOf("?"))>0&&parent.frames.length){

d=parent.frames[n.substring(p+1)].document;n=n.substring(0,p);}

if(!(x=d[n])&&d.all)x=d.all[n];for(i=0;!x&&i<d.forms.length;i++)x=d.forms[n];

for(i=0;!x&&d.layers&&i<d.layers.length;i++)x=MM_findObj(n,d.layers.document);

if(!x&&d.getElementById)x=d.getElementById(n);returnx;

}

functionfetch_object(idname,forcefetch)

{

if(typeof(vBobjects[idname])=="undefined")

{

vBobjects[idname]=MM_findObj(idname);

}

returnvBobjects[idname];

}

//showmenuvmenu:内容,允许为空,vmenuobjDIV数据ID,MOD0=关闭浏览器自适应,用于版面导航菜单

functionshowmenu(e,vmenu,vmenuobj,mod){

if(!document.all&&!document.getElementById&&!document.layers)

return

varwhich=vmenu;

if(vmenuobj)

{

varMenuObj=fetch_object(vmenuobj);

if(MenuObj)

{

which=MenuObj.innerHTML;

}

}

if(!which)

{

return

}

clearhidemenu();

ie_clearshadow();

menuobj=ie4?document.all.popmenu:ns6?document.getElementById("popmenu"):ns4?document.popmenu:""

menuobj.thestyle=(ie4||ns6)?menuobj.style:menuobj

if(ie4||ns6)

menuobj.innerHTML=which

else{

menuobj.document.write('<layername=guibgcolor="#E6E6E6"width="165"onmouseover="clearhidemenu()"onmouseout="hidemenu()">'+which+'</layer>')

menuobj.document.close()

}

menuobj.contentwidth=(ie4||ns6)?menuobj.offsetWidth:menuobj.document.gui.document.width

menuobj.contentheight=(ie4||ns6)?menuobj.offsetHeight:menuobj.document.gui.document.height

eventX=ie4?event.clientX:ns6?e.clientX:e.x

eventY=ie4?event.clientY:ns6?e.clientY:e.y

varrightedge=ie4?document.body.clientWidth-eventX:window.innerWidth-eventX

varbottomedge=ie4?document.body.clientHeight-eventY:window.innerHeight-eventY

vargetlength

if(rightedge<menuobj.contentwidth){

getlength=ie4?document.body.scrollLeft+eventX-menuobj.contentwidth+menuOffX:ns6?window.pageXOffset+eventX-menuobj.contentwidth:eventX-menuobj.contentwidth

}else{

getlength=ie4?ie_x(event.srcElement)+menuOffX:ns6?window.pageXOffset+eventX:eventX

}

menuobj.thestyle.left=getlength+'px'

if(bottomedge<menuobj.contentheight&&mod!=0){

getlength=ie4?document.body.scrollTop+eventY-menuobj.contentheight-event.offsetY+menuOffY-23:ns6?window.pageYOffset+eventY-menuobj.contentheight-10:eventY-menuobj.contentheight

}else{

getlength=ie4?ie_y(event.srcElement)+menuOffY:ns6?window.pageYOffset+eventY+10:eventY

}

menuobj.thestyle.top=getlength+'px'

menuobj.thestyle.visibility="visible"

ie_dropshadow(menuobj,"#999999",3)

returnfalse

}

functionie_y(e){

vart=e.offsetTop;

while(e=e.offsetParent){

t+=e.offsetTop;

}

returnt;

}

functionie_x(e){

varl=e.offsetLeft;

while(e=e.offsetParent){

l+=e.offsetLeft;

}

returnl;

}

functionie_dropshadow(el,color,size)

{

vari;

for(i=size;i>0;i--)

{

varrect=document.createElement('div');

varrs=rect.style

rs.position='absolute';

rs.left=(el.style.posLeft+i)+'px';

rs.top=(el.style.posTop+i)+'px';

rs.width=el.offsetWidth+'px';

rs.height=el.offsetHeight+'px';

rs.zIndex=el.style.zIndex-i;

rs.backgroundColor=color;

varopacity=1-i/(i+1);

rs.filter='alpha(opacity='+(100*opacity)+')';

//el.insertAdjacentElement('afterEnd',rect);

fo_shadows[fo_shadows.length]=rect;

}

}

functionie_clearshadow()

{

for(vari=0;i<fo_shadows.length;i++)

{

if(fo_shadows[i])

fo_shadows[i].style.display="none"

}

fo_shadows=newArray();

}

functioncontains_ns6(a,b){

while(b.parentNode)

if((b=b.parentNode)==a)

returntrue;

returnfalse;

}

functionhidemenu(){

if(window.menuobj)

menuobj.thestyle.visibility=(ie4||ns6)?"hidden":"hide"

ie_clearshadow()

}

functiondynamichide(e){

if(ie4&&!menuobj.contains(e.toElement))

hidemenu()

elseif(ns6&&e.currentTarget!=e.relatedTarget&&!contains_ns6(e.currentTarget,e.relatedTarget))

hidemenu()

}

functiondelayhidemenu(){

if(ie4||ns6||ns4)

delayhide=setTimeout("hidemenu()",500)

}

functionclearhidemenu(){

if(window.delayhide)

clearTimeout(delayhide)

}

functionhighlightmenu(e,state){

if(document.all)

source_el=event.srcElement

elseif(document.getElementById)

source_el=e.target

if(source_el.className=="menuitems"){

source_el.id=(state=="on")?"mouseoverstyle":""

}

else{

while(source_el.id!="popmenu"){

source_el=document.getElementById?source_el.parentNode:source_el.parentElement

if(source_el.className=="menuitems"){

source_el.id=(state=="on")?"mouseoverstyle":""

}

}

}

}

if(ie4||ns6)

document.onclick=hidemenu

3、在menu.htm目录下建立image目录,制作背景图片

PS:事例效果:

以下为代码内容:

<divclass=menuskinid=popmenuonmouseover=clearhidemenu()onmouseout=dynamichide(event)style="z-index:100;"></div>

<fontcolor="#eeeeee"><ahref=###onMouseOver="showmenu(event,'<divclass=menuitemsid=site_menu><ahref=/common/skins.asp?action=skin_1>简约时尚</a><br/><ahref=/common/skins.asp?action=skin_2>魔兽世界</a><br/><ahref=/common/skins.asp?action=cookies_clearalt=清除您在本站所留的Cookies信息>清除记录</a><br/></div>','site_menu')"><fontcolor=#eeeeee>[选择皮肤]</font></a></font>

jb51修正无错

.menuskin { BORDER-RIGHT: #CBD7E9 1px solid; BORDER-TOP: #CBD7E9 1px solid; BACKGROUND-IMAGE: url(image/menubg.gif); VISIBILITY: hidden; FONT: 12px Tahoma, Verdana; BORDER-LEFT: #CBD7E9 1px solid; BORDER-BOTTOM: #CBD7E9 1px solid; POSITION: absolute; BACKGROUND-COLOR: #ffffff } .menuskin A { PADDING-RIGHT: 10px; PADDING-LEFT: 25px; COLOR: #3A4273; TEXT-DECORATION: none } #mouseoverstyle { BORDER-RIGHT: #597db5 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #597db5 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 2px; BORDER-LEFT: #597db5 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #597db5 1px solid; BACKGROUND-COLOR: #c9d5e7 } #mouseoverstyle A { COLOR: black } .menuitems { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 2px; WORD-BREAK: keep-all; PADDING-TOP: 1px } //Pop-it menu- By Dynamic Drive - Modified by Wbird //For full source code and more DHTML scripts, visit http://www.gyct.cn //This credit MUST stay intact for use var menuOffX=0 //菜单距连接文字最左端距离 var menuOffY=18 //菜单距连接文字顶端距离 var vBobjects = new Array(); var fo_shadows=new Array(); ////No need to edit beyond here var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1 var ns6=document.getElementById&&!document.all var ns4=document.layers function MM_findObj(n, d) { var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i 查字典教程网

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

【仿DVBBS下拉菜单效果 jb51修正无错】相关文章:

Javascript实现的SHA-256加密算法完整实例

网站上面有这种切换效果

打字效果

javascript匹配车牌号正则表达式

理解js回收机制通俗易懂版

常用DOM整理

javascript实现模拟时钟的方法

详解Javascript中的Object对象

下拉菜单的简易制作

Ctrl + Enter提交前检测的代码

精品推荐
分类导航