forked from WebStackPage/WebStackPage.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDemo.html
More file actions
160 lines (145 loc) · 6.61 KB
/
Demo.html
File metadata and controls
160 lines (145 loc) · 6.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<html>
<head>
<style type="Text/css">
<!--
BODY{margin:0px;border:0px;background-color:#ffffff}
//-->
</style>
<script>
function changeStyle()
{
var s = document.getElementById("tStyle");
var v = s.options[s.selectedIndex].value;
with(parent.window.frames[0])
{
TaskMenu.setStyle(v);
}
}
function addItem()
{
var items = new Array();
var oitems = new Array();
var aIndex = parseInt(document.getElementById("aIndex").value);
var s = document.getElementById("oItems");
for(var i = 0; i < s.length; i++)
{
if(s.options[i].selected == true)
{
items[items.length] = "item" + s.options[i].value;
}
}
for(var j = 0; j < items.length; j++)
{
with(parent.window.frames[0])
{
taskMenu3.add(eval(items[j]),aIndex++);
}
}
}
function delItem()
{
try
{
var i = parseInt(document.getElementById("dIndex").value);
var j = parseInt(document.getElementById("dCount").value);
with(parent.window.frames[0])
{
taskMenu3.remove(i,j);
}
}
catch(ex)
{
alert(ex.description);
}
}
</script>
</head>
<body>
<table width=100% border=0 cellpadding=0 cellspacing=1 bgcolor=#666666>
<tr height=50>
<td width=100% bgcolor=#cecfff style='font:bold 18px Tahoma,Verdana;padding-left:50px'>
系统设置
</td>
</tr>
<tr>
<td width=100% style='padding:20px;background-color:#efefef'>
<div style='width:100%;;font:12px Tahoma,verdana'>
更改Menu的主题样式 : <select id="tStyle" >
<option value="blue/blueStyle.css">蓝色主题</option>
<option value="silver/silverStyle.css">银色主题</option>
<option value="classic/classicStyle.css">经典主题</option>
</select>
<input type="button" onclick ="Javascript:changeStyle()" value="更 改">
</div>
</td>
</tr>
<tr>
<td width=100% style='padding:20px;background-color:#efefef'>
<div style='width:100%;;font:12px Tahoma,verdana'>
<pre><font style='font: 12px Tahoma,verdana'>
<h1>TaskMenu 3.0</h1>
新特点:
(1) 重新设计的数据结构,使用了更合理的双向链表,代替了旧版本的父子包含结构,更容易以后扩展。
(2) 重新设计了控制函数接口,更方便使用者。
(3) 通过重写css样式文件,就可以换菜单肤表,不需要刷新,并可自定义样式。
(4) 兼容最新的firefox 浏览器。
使用特点:
菜单有一些比较特殊的地方,跟前两个版本不同的是,在构建TaskMenu类之后,必须调用init方法,才可以让
菜单显示。在调用init方法之前add的条目,会立即显示,而在init后添加的或使用中动态添加的,都会以动态效果
添加到菜单。
菜单的动作基本分为open(伸出),close (缩回),extend (变长),shorten(变短);
四种操作可同时加载在同一个菜单,而且同一个操作可加载在多个菜单上。 也可算上是异步操作。
但open和close 其中响应一种操作只会停止之前操作,毕竟菜单要么打开,要么关闭。
extend 和 shorten 同上。
同一个菜单条目添加到不同的菜单,之后添加的是该条目的科隆版本。 如果你要返回该菜单变量建议您直角调用cloneNode函数。
var item = new TaskMenuItem("条目");
var menu1 = new TaskMenu("菜单");
var menu2 = new TaskMenu("菜单");
menu1.add(item);
menu2.add(item); 同item被两次添加,这里实际隐式的调用的是 menu2.add(item.cloneNode ());
这样如果您要调用 menu2.remove(item);是不会成功的。因为被添加的是科隆条目,并不是item变量,引用不一致。
解决办法就是 调用 menu2.remove(menu2.items(0)); menu2.item(0)方法返回的就是那个被科隆的版本,
因为它是第一条目。或者直接调用科隆方法。
var item1 = new TaskMenuItem("条目");
var item2 = item.cloneNode();
配制:
默认情况下,菜单已经能很好的使用了,不过,根据大家的需要,可能还是需要更改,先说下TaskMenu.js中头部
中一些全局变量的用途: 默认配制如下 [注:文件头部中以INF打头的变量不要更改]
var CFG_FRAME_COUNT = 6;
var CFG_DOCUMENT_MARGIN = 12;
var CFG_MENU_SPACING = 15;
var CFG_MENU_WIDTH = 185;
var CFG_SCROLLBAR_WIDTH = 17;
var CFG_TITLEBAR_HEIGHT = 25;
var CFG_TITLEBAR_LEFT_WIDTH = 13;
var CFG_TITLEBAR_RIGHT_WIDTH = 25;
var CFG_MENUBODY_PADDING = 9;
var CFG_TITLEBAR_BORDER_WIDTH = 0;
var CFG_MENUBODY_BORDER_WIDTH = 1;
var CFG_SLEEP_TIME_BEGIN = 20;
var CFG_SLEEP_TIME_END = 60;
var CFG_ALPHA_STEP = Math.ceil( 100 / (CFG_FRAME_COUNT) );
var CFG_IS_SCROLLBAR_ENABLED = true;
var CFG_TITLEBAR_MIDDLE_WIDTH = CFG_MENU_WIDTH - CFG_TITLEBAR_LEFT_WIDTH - CFG_TITLEBAR_RIGHT_WIDTH;
CFG_IS_SPECIAL_HEAD_NODE = false
CFG_FRAME_COUNT 变量设定菜单变动效果需要的贞数。越小越快。最小为1 (不要设定为0 哦),就没有变动的效果了。
CFG_DOCUMENT_MARGIN 变量设定菜单的上方向和左方向离 文档边缘的空隙。
CFG_MENU_WIDTH 用来设定菜单的宽度
CFG_TITLEBAR_HEIGHT 用来设定菜单标题栏的高度。
CFG_TITLEBAR_LEFT_WIDTH 标题栏实际被分为三个部分,此变量决定左边的宽度,也就是装载titlebarLeft.gif部分除非您设计了自己的样式,否则不要更改
CFG_TITLEBAR_RIGHT_WIDTH 同上,是右边的宽度,也就是菜单状态箭头的部分。
CFG_TITLEBAR_MIDDLE_WIDTH 标题栏中间部分宽度,这里是总长度减去两边的部分,也就是titlebarMiddle.gif部分。
CFG_TITLEBAR_BORDER_WIDTH 标题栏的边框大小,这里被设定为0
CFG_MENUBODY_PADDING 菜单身体的内部空隙大小
CFG_MENUBODY_BORDER_WIDTH 菜单实体的边框大小
CFG_SLEEP_TIME_BEGIN 起始时间间隔 不要更改
CFG_SLEEP_TIME_END 结束时间间隔 不要更改
CFG_ALPHA_STEP 菜单变化中,每贞透明度发生变化的值。
CFG_IS_SPECIAL_HEAD_NODE 默认情况下,是否特殊化头菜单,建议不要更改此变量,而使用TaskMenu.setHeadMenuSpecial设定。
CFG_IS_SCROLLBAR_ENABLED 默认情况下滚动条是否可用,建议不要更改此变量,而使用TaskMenu.setScrollbarEnabled(value)来更改。
</font>
</pre>
</div>
</td>
</tr>
</table>