写了一个类似window风格的菜单,套用起来很方便.
来源:互联网 发布:桥本环奈长相知乎 编辑:程序博客网 时间:2024/05/21 07:49
写了一个类似window风格的菜单,尽量使javascript和html分离。套用起来很方便。
用了attachEvent动态设置div的事件,另外getElementsByTagName函数也是个好东东:)读取了某个html元素的集合.
这样就可以按照简单的规则添加自己的菜单了
演示地址:http://211.144.136.130/county/menu/menu.htm
源代码:http://211.144.136.130/county/menu/menu.rar
原来已经5:00了,为什么,为什么只能晚上才能做点东西?
人家都说晚上是身体系统杀毒的时候,看来我身体里病毒不少了,
md,我还没娶老婆呢,什么时候好好杀杀,不知道有啥好软件:);
看看咋用这个东东:
请符合以下规则:
引入css和js
<link rel='stylesheet' type='text/css' href='Menu.css' />
<link rel='stylesheet' type='text/css' href='liCss.css' />
<script language="javascript" src="menu.js"></script>
<script language="javascript" src="plane.js"></script>
菜单规则:
<div id="mnpMenuTop"> -------------------------------------最顶层Div id必须为 mnpMenuTop
<div class="mnpMenuRow"> ---------------------------主菜单项 class必须为 mnpMenuRow
用户管理
</div>
<div class="plan"> --------------------------------菜单面板class必须为 plan
<a href="#"><li><img src=user.gif border= 0 >添加用户</li></a>----详细菜单 必须嵌套一个 li
</div>
</div>
符合以上几项规则,样式可根据注释和自己的风格更改
其中主菜单样式在menu.css中
主要css有:
mnpMenuRow : 默认的主菜单样式 既为鼠标抬起样式
downCss :鼠标放下时的样式
overCss: 鼠标放上后的样式
详细菜单样式在licss.css中
主要css有:
li : 默认详细样式
LiOver: 鼠标放上后的样式
LiDown:鼠标放下时的样式
关键代码:
//初始化各个菜单的事件
function mnpMenuAttach(el){
divs = el.getElementsByTagName("DIV");
var count = divs.length;
for (var i =0;i<count ;i++ )
{
var div = divs.item(i);
if (div.className == "mnpMenuRow"){
div.attachEvent("onmouseenter", mnpMenuMouseover);
div.attachEvent("onmouseleave", mnpMenuMouseout);
div.attachEvent("onmousedown", mnpMenuMousedown);
div.attachEvent("onmouseup", mnpMenuMouseup);
}
div.setAttribute("id", i); //标识每个div
}
}
//展开一个菜单
function deployMenu(objMenu){
if(objMenu!=null){
if(objMenu.className==deploycss){
backMenu(tempMenu);
objMenu.className=hiddencss;
depMenu = objMenu;
var h = getLiHeight(depMenu)
if (h>100)
{
timeN = 8;
}
if (h>LiH)
{
LiH = h+90;
}
depMenu.style.height = 0;
extendMenu();
tempMenu = objMenu;
}
}
}
//显示li
function deployLI(objDiv){
var lis = objDiv.getElementsByTagName("li");
var count = lis.length;
for(var i= 0;i<count;i++){
lis.item(i).className="Deployli";
}
}
//隐藏LI
function HiddenLI(objDiv){
var lis = objDiv.getElementsByTagName("li");
var count = lis.length;
for(var i= 0;i<count;i++){
lis.item(i).className="HiddenLI";
}
}
基本上也就是这些东西了
- 写了一个类似window风格的菜单,套用起来很方便.
- 以前写的一个ASP文件管理工具,用起来很方便
- 自己写的一个类似微软VS风格的 vim c/c++语法高亮文件
- 自己写的一个类似微软VS风格的 vim c/c++语法高亮文件
- 折线翻页效果,学习起来,最近需要写一个类似效果,先学习起来
- 用C#写的一个类似网吧游戏菜单的软件
- 用linux的bash脚本写了一个菜单
- 最新写了一个 菜单 的js,分享下
- 一个很Cool的JS菜单效果(类似flash)
- 设计一个类似Window的任务管理器
- 写一个浪起来的进度条
- 写了一个方便抓Android系统日志的BAT脚本
- 编写一个类似记事本的菜单
- 一个移植十分方便的类似printf函数
- 一个移植十分方便的类似printf函数,升级版
- 在网页里做类似window右键的弹出式菜单
- 写了一个定时器类,以方便应用
- 一个windows xp风格的多级菜单
- struts为每个独立请求创建一个Action的方法
- 一个查找文件的类:它的长处在于能够搜索子目录并且是可控制的
- delphi 编码转换 unicode gbk big5
- [原创]从东汉谋杀案到罗马的灭亡 - 世界历史的蝴蝶效应
- 解决问题,而不是炫耀自己
- 写了一个类似window风格的菜单,套用起来很方便.
- 欧洲的桥-Pont Adolphe(Luxembourg)
- XXX项目阶段总结(2)
- 人生致命的八个经典问题
- Deiphi编译优化导致的死循环
- [转]scanf()函数释疑(下)
- [转]scanf()函数释疑(上)
- 陈头经典语录
- 日本的真实目的与中国的应对策略(转)