Discuz! 官方站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 40115|回复: 66

[美化] [原创/美化]下拉菜单 For [D4]

 关闭 [复制链接]
发表于 2005-11-22 09:48:38 | 显示全部楼层 |阅读模式
//------------------------------------------------------------------------
//名称:下拉菜单
//版本:D4
//整理:Freddy
//修改文件:common.js
//修改模板:所有风格的header.htm、css.htm
//技术支持:无
//功能:把其它一些非后台插件的链接型HACK和控制面板集到一起。如果以后再有新的东东再会更新的:)
//修改难易:这个比D25简单多了!!!
//演示:http://www.51happy365.com/bbs
//------------------------------------------------------------------------


1. 修改 include/common.js

在最后插入:


  1. <!--

  2. var menuOffX=0        //菜单距连接文字最左端距离
  3. var menuOffY=18        //菜单距连接文字顶端距离

  4. var fo_shadows=new Array()
  5. var linkset=new Array()


  6. var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
  7. var ns6=document.getElementById&&!document.all
  8. var ns4=document.layers
  9. function openScript(url, width, height){
  10.         var Win = window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=no,status=no' );
  11. }

  12. function showmenu(e,vmenu,mod){
  13.         if (!document.all&&!document.getElementById&&!document.layers)
  14.                 return
  15.         which=vmenu
  16.         clearhidemenu()
  17.         ie_clearshadow()
  18.         menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
  19.         menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj
  20.         
  21.         if (ie4||ns6)
  22.                 menuobj.innerHTML=which
  23.         else{
  24.                 menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>')
  25.                 menuobj.document.close()
  26.         }
  27.         menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
  28.         menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
  29.         
  30.         eventX=ie4? event.clientX : ns6? e.clientX : e.x
  31.         eventY=ie4? event.clientY : ns6? e.clientY : e.y
  32.         
  33.         var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
  34.         var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY
  35.                 if (rightedge<menuobj.contentwidth)
  36.                         menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth+menuOffX : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
  37.                 else
  38.                         menuobj.thestyle.left=ie4? ie_x(event.srcElement)+menuOffX : ns6? window.pageXOffset+eventX : eventX
  39.                
  40.                 if (bottomedge<menuobj.contentheight&&mod!=0)
  41.                         menuobj.thestyle.top=ie4? ie_y(event.srcElement)+menuOffY : ns6? window.pageYOffset+eventY+10 : eventY
  42.                 else
  43.                         menuobj.thestyle.top=ie4? ie_y(event.srcElement)+menuOffY : ns6? window.pageYOffset+eventY+10 : eventY
  44.         menuobj.thestyle.visibility="visible"
  45.         ie_dropshadow(menuobj,"#999999",3)
  46.         return false
  47. }

  48. function ie_y(e){  
  49.         var t=e.offsetTop;  
  50.         while(e=e.offsetParent){  
  51.                 t+=e.offsetTop;  
  52.         }  
  53.         return t;  
  54. }  
  55. function ie_x(e){  
  56.         var l=e.offsetLeft;  
  57.         while(e=e.offsetParent){  
  58.                 l+=e.offsetLeft;  
  59.         }  
  60.         return l;  
  61. }  
  62. function ie_dropshadow(el, color, size)
  63. {
  64.         var i;
  65.         for (i=size; i>0; i--)
  66.         {
  67.                 var rect = document.createElement('div');
  68.                 var rs = rect.style
  69.                 rs.position = 'absolute';
  70.                 rs.left = (el.style.posLeft + i) + 'px';
  71.                 rs.top = (el.style.posTop + i) + 'px';
  72.                 rs.width = el.offsetWidth + 'px';
  73.                 rs.height = el.offsetHeight + 'px';
  74.                 rs.zIndex = el.style.zIndex - i;
  75.                 rs.backgroundColor = color;
  76.                 var opacity = 1 - i / (i + 1);
  77.                 rs.filter = 'alpha(opacity=' + (100 * opacity) + ')';
  78.                 //el.insertAdjacentElement('afterEnd', rect);
  79.                 fo_shadows[fo_shadows.length] = rect;
  80.         }
  81. }
  82. function ie_clearshadow()
  83. {
  84.         for(var i=0;i<fo_shadows.length;i++)
  85.         {
  86.                 if (fo_shadows[i])
  87.                         fo_shadows[i].style.display="none"
  88.         }
  89.         fo_shadows=new Array();
  90. }


  91. function contains_ns6(a, b) {
  92.         while (b.parentNode)
  93.                 if ((b = b.parentNode) == a)
  94.                         return true;
  95.         return false;
  96. }

  97. function hidemenu(){
  98.         if (window.menuobj)
  99.                 menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
  100.         ie_clearshadow()
  101. }

  102. function dynamichide(e){
  103.         if (ie4&&!menuobj.contains(e.toElement))
  104.                 hidemenu()
  105.         else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
  106.                 hidemenu()
  107. }

  108. function delayhidemenu(){
  109.         if (ie4||ns6||ns4)
  110.                 delayhide=setTimeout("hidemenu()",500)
  111. }

  112. function clearhidemenu(){
  113.         if (window.delayhide)
  114.                 clearTimeout(delayhide)
  115. }

  116. function highlightmenu(e,state){
  117.         if (document.all)
  118.                 source_el=event.srcElement
  119.         else if (document.getElementById)
  120.                 source_el=e.target
  121.         if (source_el.className=="menuitems"){
  122.                 source_el.id=(state=="on")? "mouseoverstyle" : ""
  123.         }
  124.         else{
  125.                 while(source_el.id!="popmenu"){
  126.                         source_el=document.getElementById? source_el.parentNode : source_el.parentElement
  127.                         if (source_el.className=="menuitems"){
  128.                                 source_el.id=(state=="on")? "mouseoverstyle" : ""
  129.                         }
  130.                 }
  131.         }
  132. }





  133. //-->
复制代码



2. 修改css.htm

在--></style>前插入:



  1. .menuskin {
  2.         filter: Alpha(Opacity=80);
  3.         BORDER: #666666 1px solid; VISIBILITY: hidden; FONT: 12px Verdana;
  4.         POSITION: absolute;
  5.         BACKGROUND-COLOR:#FFFFFF;
  6.         background-repeat : repeat-y;
  7.         }
  8. .menuskin A {
  9.         PADDING-RIGHT: 9px; PADDING-LEFT: 7px; COLOR: black; TEXT-DECORATION: none; behavior:url(inc/noline.htc);
  10.         }
  11. #mouseoverstyle {
  12.         BACKGROUND-COLOR: #F2F5FB; margin:2px; padding:0px; border:#8396C3 1px solid;
  13.         }
  14. #mouseoverstyle A {
  15.         COLOR: black
  16. }
  17. .menuitems{
  18.         margin:2px;padding:1px;word-break:keep-all;
  19. }
复制代码


3. 修改header.htm

查找


  1. <body leftmargin="0" rightmargin="0" topmargin="0" onkeydown="if(event.keyCode==27) return false;">
复制代码


在下面插入

  1. <div class=menuskin id=popmenu
  2.       onmouseover="clearhidemenu();highlightmenu(event,'on')"
  3.       onmouseout="highlightmenu(event,'off');dynamichide(event)" style="Z-index:100"></div>
复制代码


查找

  1. <!--{if $discuz_uid}-->
  2.         <span class="bold">$discuz_userss: </span> <a href="$link_logout">{lang logout}</a>
  3.         <!--{if $maxpmnum}-->| <a href="pm.php" target="_blank">{lang pm}</a> <!--{/if}-->
  4.         |  <a href="memcp.php">{lang memcp}</a>
  5.         <!--{if in_array($adminid, array(1,2,3))}-->| <a href="admincp.php" target="_blank">{lang admincp}</a> <!--{/if}-->
  6. <!--{else}-->
  7.         <span class="bold">{lang guest}: &nbsp;</span><a href="$link_register">{lang register}</a>
  8.         | <a href="$link_login">{lang login}</a>
  9. <!--{/if}-->

  10. <!--{if $memliststatus}-->| <a href="member.php?action=list">{lang memberlist}</a> <!--{/if}-->
  11. <!--{if $allowsearch || $qihoostatus}-->| <a href="search.php">{lang search}</a> <!--{/if}-->
  12. <!--{if $allowviewstats}-->| <a href="stats.php">{lang statistics}</a> <!--{/if}-->
  13. <!--{loop $plugins['links'] $plugin}-->
  14.         <!--{loop $plugin $module}-->
  15.              <!--{if !$module['adminid'] || ($module['adminid'] && $adminid > 0 && $module['adminid'] >= $adminid)}-->| $module[url] <!--{/if}-->
  16.         <!--{/loop}-->
  17. <!--{/loop}-->
  18. | <a href="faq.php">{lang faq}</a>
复制代码


替换:


  1. <!--{if $discuz_uid}-->
  2.         <span class="bold">$discuz_userss: </span> <a href="$link_logout">{lang logout}</a>
  3.         <!--{if $maxpmnum}-->| <a href="pm.php" target="_blank">{lang pm}</a> <!--{/if}-->
  4.         | <a href="memcp.php " OnMouseOut=delayhidemenu() onMouseOver="showmenu(event,'<div class=menuitems><a style=font-size:9pt;line-height:14pt; href=memcp.php> 控制面板首页</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=memcp.php?action=profile> 编辑资料</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=memcp.php?action=credits> 积分交易</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=memcp.php?action=usergroups> 公众用户组</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=memcp.php?action=buddylist> 好友列表</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=memcp.php?action=subscriptions> 订阅列表</a></div><div class=menuitems><a href=memcp.php?action=favorites> 收藏夹</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=pm.php>短消息</a></div>')" style="CURSOR:hand" >控制面板</a>
  5.         <!--{if in_array($adminid, array(1,2,3))}-->| <a href="admincp.php" target="_blank">{lang admincp}</a> <!--{/if}-->
  6. <!--{else}-->
  7.         <span class="bold">{lang guest}: &nbsp;</span><a href="$link_register">{lang register}</a>
  8.         | <a href="$link_login">{lang login}</a>
  9. <!--{/if}-->

  10. <!--{if $memliststatus}-->| <a href="member.php?action=list">{lang memberlist}</a> <!--{/if}-->
  11. <!--{if $allowsearch || $qihoostatus}-->| <a href="search.php">{lang search}</a> <!--{/if}-->
  12. <!--{if $allowviewstats}-->
  13. | <a href="stats.php" OnMouseOut=delayhidemenu() onMouseOver="showmenu(event,'<div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php >基本概况</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php?type=views >流量统计</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php?type=agent >客户软件</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php?type=posts >发贴量记录</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php?type=forumsrank >论坛排行</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php?type=threadsrank >主题排行</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php?type=postsrank >发贴排行</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php?type=creditsrank >积分排行</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php?type=onlinetime >在线时间</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=stats.php?type=team >管理团队</a></div>')">{lang statistics}</a>
  14. <!--{/if}-->
  15. | <a href="###" OnMouseOut=delayhidemenu() onMouseOver="showmenu(event,'<div class=menuitems><a href=plugin.php?identifier=bank&module=bank>社区银行</a></div><div class=menuitems><a href=plugin.php?identifier=jail&module=jail>社区监狱</a></div><div class=menuitems><a href=plugin.php?identifier=mission&module=mission>任务精灵</a></div><div class=menuitems><a href=plugin.php?identifier=fingerguess&module=fingerguess>猜拳游戏</a></div>')" style="CURSOR:hand">娱乐设施</a>
  16. | <a href="###" OnMouseOut=delayhidemenu() onMouseOver="showmenu(event,'<div class=menuitems><a href=freddy.php>万年历</a></div><div class=menuitems><a href=star.php>星座缘</a></div><div class=menuitems><a href=anquan.php>女性安全期测试</a></div>')" style="CURSOR:hand">其它</a>
  17. | <a href="###" OnMouseOut=delayhidemenu() onMouseOver="showmenu(event,'<div class=menuitems><a style=font-size:9pt;line-height:14pt; href=music/index.php target=_parent>播放</a></div><div class=menuitems><a style=font-size:9pt;line-height:14pt; href=index.php target=_parent>关闭</a></div>')"><font class="blod">音乐</font></a>
  18. | <a href="faq.php">{lang faq}</a>
复制代码


以上代码可以根据自己所装插件自己更换!!!

后台刷新缓存!

[ 本帖最后由 freddy 于 2005-12-13 15:49 编辑 ]
 楼主| 发表于 2005-11-22 09:48:50 | 显示全部楼层
更新用的。。。
回复

使用道具 举报

发表于 2005-11-22 09:58:39 | 显示全部楼层
顶兄弟
回复

使用道具 举报

发表于 2005-11-22 10:16:58 | 显示全部楼层
马上安装 期待越来越多的插件支持 3.0
回复

使用道具 举报

发表于 2005-11-22 10:30:11 | 显示全部楼层
厉害~~~~!!!!
回复

使用道具 举报

发表于 2005-11-22 10:33:45 | 显示全部楼层
3.0开始来了哦!!
回复

使用道具 举报

发表于 2005-11-22 11:22:05 | 显示全部楼层
新时代已经来了!从现在起作好准备。

收藏,顶起,感谢,88
回复

使用道具 举报

发表于 2005-11-22 12:44:03 | 显示全部楼层
好象有问题
回复

使用道具 举报

发表于 2005-11-22 14:37:11 | 显示全部楼层
先支持下。
回复

使用道具 举报

发表于 2005-11-22 22:34:13 | 显示全部楼层
好强的英文水平啊!!下次可不可以用中文呢?!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

腾讯云市场 一站式企业服务 爆款建站、小程序等1元起

QQ|小黑屋|Discuz! 官方站 ( 粤B2-20090059-165 )star

GMT+8, 2019-11-21 01:42

Powered by Discuz! X3.3

Copyright © 2001-2019 Tencent Cloud.

快速回复 返回顶部 返回列表