原帖由 bonusboy29 于 2005-9-23 14:49 发表
我不想安装动网下拉菜单, 我只想要能跳楼的功能,一大片code 有些是不要的吧
重申下安装条件: 要安装了动网下拉菜单
楼主有没有别的方法
这个是动网下拉菜单插件链接
[url]http://www.discuz.n ...
动网下拉菜单整理贴(by文文の封印 )
最近不少人问我动网下拉菜单的问题,时间问题不能一一解答了,所以把原来那个帖子整理一下,希望对大家有帮助
适用于全新安装的用户,如果修改过模板请按照类似代码修改
修改 include/common.js
1:于文件尾加入
--------------------------------------------------------------------------------
- //<!--
- var menuOffX=0 //菜单距连接文字最左端距离
- var menuOffY=18 //菜单距连接文字顶端距离
- var fo_shadows=new Array()
- var linkset=new Array()
- var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
- var ns6=document.getElementById&&!document.all
- var ns4=document.layers
- function openScript(url, width, height){
- var Win = window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=no,status=no' );
- }
- function showmenu(e,vmenu,mod){
- if (!document.all&&!document.getElementById&&!document.layers)
- return
- which=vmenu
- 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('<layer name=gui bgColor=#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
-
- var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
- var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY
- if (rightedge<menuobj.contentwidth)
- menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth+menuOffX : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
- else
- menuobj.thestyle.left=ie4? ie_x(event.srcElement)+menuOffX : ns6? window.pageXOffset+eventX : eventX
-
- if (bottomedge<menuobj.contentheight&&mod!=0)
- menuobj.thestyle.top=ie4? ie_y(event.srcElement)+menuOffY : ns6? window.pageYOffset+eventY+10 : eventY
- else
- menuobj.thestyle.top=ie4? ie_y(event.srcElement)+menuOffY : ns6? window.pageYOffset+eventY+10 : eventY
- menuobj.thestyle.visibility="visible"
- ie_dropshadow(menuobj,"#999999",3)
- return false
- }
- function ie_y(e){
- var t=e.offsetTop;
- while(e=e.offsetParent){
- t+=e.offsetTop;
- }
- return t;
- }
- function ie_x(e){
- var l=e.offsetLeft;
- while(e=e.offsetParent){
- l+=e.offsetLeft;
- }
- return l;
- }
- function ie_dropshadow(el, color, size)
- {
- var i;
- for (i=size; i>0; i--)
- {
- var rect = document.createElement('div');
- var rs = 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;
- var opacity = 1 - i / (i + 1);
- rs.filter = 'alpha(opacity=' + (100 * opacity) + ')';
- //el.insertAdjacentElement('afterEnd', rect);
- fo_shadows[fo_shadows.length] = rect;
- }
- }
- function ie_clearshadow()
- {
- for(var i=0;i<fo_shadows.length;i++)
- {
- if (fo_shadows[i])
- fo_shadows[i].style.display="none"
- }
- fo_shadows=new Array();
- }
- function contains_ns6(a, b) {
- while (b.parentNode)
- if ((b = b.parentNode) == a)
- return true;
- return false;
- }
- function hidemenu(){
- if (window.menuobj)
- menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
- ie_clearshadow()
- }
- function dynamichide(e){
- if (ie4&&!menuobj.contains(e.toElement))
- hidemenu()
- else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
- hidemenu()
- }
- function delayhidemenu(){
- if (ie4||ns6||ns4)
- delayhide=setTimeout("hidemenu()",500)
- }
- function clearhidemenu(){
- if (window.delayhide)
- clearTimeout(delayhide)
- }
- function highlightmenu(e,state){
- if (document.all)
- source_el=event.srcElement
- else if (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" : ""
- }
- }
- }
- }
- //-->
复制代码
2:修改 css.htm
于 </style> 前加入
--------------------------------------------------------------------------------
- .menuskin {
- filter: Alpha(Opacity=80);
- BORDER: #666666 1px solid; VISIBILITY: hidden; FONT: 12px Verdana;
- POSITION: absolute;
- BACKGROUND-COLOR:#FFFFFF;
- background-repeat : repeat-y;
- }
- .menuskin A {
- PADDING-RIGHT: 9px; PADDING-LEFT: 7px; COLOR: black; TEXT-DECORATION: none; behavior:url(inc/noline.htc);
- }
- #mouseoverstyle {
- BACKGROUND-COLOR: #F2F5FB; margin:2px; padding:0px; border:#8396C3 1px solid;
- }
- #mouseoverstyle A {
- COLOR: black
- }
- .menuitems{
- margin:2px;padding:1px;word-break:keep-all;
- }
复制代码
3:修改 header.htm
找到
--------------------------------------------------------------------------------
- <body leftmargin="0" rightmargin="0" topmargin="0">
复制代码
在下面添加
--------------------------------------------------------------------------------
- <div class=menuskin id=popmenu
- onmouseover="clearhidemenu();highlightmenu(event,'on')"
- onmouseout="highlightmenu(event,'off');dynamichide(event)" style="Z-index:100"></div>
复制代码 现在下拉菜单就算装好了
-------------------------------------------------------------------------------- |