模拟腾讯日历菜单特效。
收集一个很不错的菜单,兼容浏览器.linklink/Files/xxcainiao/xx.rar
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
5
<title>CMenu2</title>
6
<style type="text/css">
7
body {
8
/*设置body背景颜色*/
9
background-color:#000000;
10
}
11![](/Images/OutliningIndicators/InBlock.gif)
12
div#CMenu2 {
13
/*外框*/
14
text-align:center;
15
z-index:2;
16
}
17![](/Images/OutliningIndicators/InBlock.gif)
18
div#CMenu2_Content {
19
/*设置内容底部的样式*/
20
background-color:#ACBEC6;
21
filter:alpha(opacity=50);
22
opacity:0.5;
23
z-index:1;
24
}
25![](/Images/OutliningIndicators/InBlock.gif)
26
div#CMenu2, div#CMenu2_Content {
27
/*设置整体定位*/
28
position:absolute;
29
display:none;
30
}
31![](/Images/OutliningIndicators/InBlock.gif)
32
div#CMenu2 div.Title {
33
/*设置标题的样式*/
34
background-color:#3B94B6;
35
color:#FFFFFF;
36
font-weight:bold;
37
cursor:default;
38
}
39![](/Images/OutliningIndicators/InBlock.gif)
40
div#CMenu2 div.Content {
41
/*设置内容对齐方式IE BUG*/
42
position:relative;
43
text-align:center;
44
padding:5px 0px 5px 10px;
45
}
46![](/Images/OutliningIndicators/InBlock.gif)
47
div#CMenu2 div.Content img {
48
/*设置内容中所有图片的样式*/
49
margin-right:10px;
50
}
51![](/Images/OutliningIndicators/InBlock.gif)
52
div.CMenu2Temp {
53
/*设置移动框的样式*/
54
border:#CCCCCC 1px dashed;
55
position:absolute;
56
z-index:100;
57
}
58
div.CMenu2Text {
59
/*设置终效果字的样式*/
60
position:absolute;
61
z-index:100;
62
text-align:center;
63
font-size:14px;
64
font-weight:bold;
65
font-family:"黑体";
66
color:#6699CC;
67
}
68
</style>
69
<script type="text/javascript">
70
(function (bool) {
71
//兼容FF一些方法
72
var html;
73
74
window.IE = /MSIE/.test(window.navigator.userAgent);
75
76
if (bool) {
77
78
html = window.HTMLElement.prototype;
79
80
window.__defineGetter__("event", function () {
81
//兼容Event对象
82
var o = arguments.callee;
83
84
do {
85
if (o.arguments[0] instanceof Event) return o.arguments[0];
86
} while (o = o.caller);
87
88
return null;
89
});
90
91
Event.prototype.__defineGetter__("fromElement", function () {
92
/*
93
这里:
94
onmouseover的时候relatedTarget为鼠标离开(onmouseout)的对象
95
onmouseout的时候relatedTarget为鼠标当前(onmouseover)的对象
96
*/
97
return this.relatedTarget;
98![](/Images/OutliningIndicators/InBlock.gif)
99
});
100
101
html.contains = function (o) {
102
do {
103
if (o == this) return true;
104
} while (o = o.parentNode);
105
return false;
106
};
107
108
html.__defineSetter__("className", function (t_v) {
109
this.setAttribute("class", t_v);
110
});
111
112
html.__defineGetter__("className", function () {
113
return this.getAttribute("class");
114
});
115
116
}
117
118
})(/Firefox/.test(window.navigator.userAgent));
119![](/Images/OutliningIndicators/InBlock.gif)
120
var Class = {
121
//创建类
122
create : function () {
123
return function () {
124
this.initialize.apply(this, arguments);
125
};
126
}
127
};
128![](/Images/OutliningIndicators/InBlock.gif)
129
var $ = function (id) {
130
return "string" == typeof id ? document.getElementById(id) : id;
131
};
132![](/Images/OutliningIndicators/InBlock.gif)
133![](/Images/OutliningIndicators/InBlock.gif)
134
var $A = function (a) {
135
//转换数组
136
return a ? Array.apply(null, a) : new Array;
137
};
138![](/Images/OutliningIndicators/InBlock.gif)
139
Function.prototype.bind = function () {
140
//绑定事件
141
var wc = this, a = $A(arguments), o = a.shift();
142
return function () {
143
wc.apply(o, a.concat($A(arguments)));
144
};
145
};
146![](/Images/OutliningIndicators/InBlock.gif)
147
Object.extend = function (a, b) {
148
//追加方法
149
for (var i in b) a[i] = b[i];
150
return a;
151
};
152![](/Images/OutliningIndicators/InBlock.gif)
153
Object.extend(Object, {
154![](/Images/OutliningIndicators/InBlock.gif)
155
addEvent : function (a, b, c, d) {
156
//添加函数
157
var b = "object" != typeof b ? b : b[1]
158
if (a.attachEvent) a.attachEvent(b, c);
159
else a.addEventListener(b.replace(/^on/, ""), c, d || false);
160
return c;
161
},
162
163
delEvent : function (a, b, c, d) {
164
//删除函数
165
var b = "object" != typeof b ? b : b[1]
166
if (a.detachEvent) a.detachEvent(b, c);
167
else a.removeEventListener(b.replace(/^on/, ""), c, d || false);
168
return c;
169
}
170
171
});
172![](/Images/OutliningIndicators/InBlock.gif)
173![](/Images/OutliningIndicators/InBlock.gif)
174
var CMenu2 = Class.create();
175![](/Images/OutliningIndicators/InBlock.gif)
176
CMenu2.prototype = {
177
178
initialize : function (body, $left, $top) {
179
//初始化参数
180
var wc = this;
181
wc.body = body; //整体
182
wc.property = { left : $left, top : $top }; //记录左边和上边的距离
183
wc.images = []; //所有的图片元素
184
wc.t_images = []; //所有缓存图片组
185
(wc.text = { temp : document.createElement("div"), items : [], ing : false }).temp.className = "CMenu2Text"; //设置字组
186
wc.title = body[0].childNodes[0] //标题
187
wc.content = body[0].childNodes[1]; //图片的parentNode元素
188
wc.titleLeft = 0; //标题距离整体左边的距离
189
(wc.o_move = { temp : document.createElement("div"), left : 0, top : 0, ing : false }).temp.className = "CMenu2Temp"; //拖拽时临时对象
190
wc.i_fmove = wc.e_fmove = null; //拖拽的函数引用地址存放
191
wc.area = 50; //变化范围
192
},
193
194
offset : function (o) {
195
//设置定位
196
var $x = $y = 0;
197
do { $x += o.offsetLeft, $y += o.offsetTop; }
198
while (o = o.offsetParent);
199
return { x : $x, y : $y };
200
},
201
202
reMouse : function () {
203
//返回鼠标绝对位置
204
var e = window.event;
205
return {
206
x : document.documentElement.scrollLeft + e.clientX,
207
y : document.documentElement.scrollTop + e.clientY
208
};
209
},
210
211
load_image : function (url) {
212
//加载图片
213
return (new Image).src = url;
214
},
215
216
load : function (ary) {
217
//加载-创建图片及执行初始化参数
218
var wc = this, imgs = wc.images, width = 0, oimg, i;
219
for (i = 0 ; i < ary.length ; i ++) {
220
oimg = document.createElement("img"); //创建图片
221
oimg.src = (wc.t_images[i] = [wc.load_image(ary[i][0]), wc.load_image(ary[i][1])])[0]; //设置链接
222
oimg.align = "top", oimg.onclick = ary[i][5]; //设置对齐和点击事件
223
with (oimg.style) { width = ary[i][2] + "px", height = ary[i][3] + "px"; }; //设置高宽(加载时避免变形)
224
wc.content.appendChild(
225
(imgs[i] = { img : oimg, width : ary[i][2], height : ary[i][3] }).img //设置图片对象组,返回图片追加到内容
226
);
227
width += ary[i][2]; //设置宽度
228
wc.text.items[i] = ary[i][4]; //设置字体组
229
}
230
wc.init_body(width); //设置宽度
231
wc.set_titleStyle(); //设置标题样式
232
wc.titleLeft = wc.offset(wc.title).x - wc.offset(wc.body[0]).x; //设置标题距离整体的距离
233
wc.set_position(wc.property.left, wc.property.top); //设置位置
234
wc.content.onmousemove = wc.c_move.bind(wc); //设置动画
235
wc.content.onmouseout = wc.c_out.bind(wc); //设置还原大小
236
wc.title.onmousedown = wc.s_move.bind(wc); //设置拖拽
237
238
},
239
240
init_body : function (width) {
241
//初始化菜单位置
242
var wc = this, body = wc.body[0], background = wc.body[1], title = wc.title, content = wc.content;
243
244
body.style.display = background.style.display = "block"; //设置显示
245
246
title.style.width = content.offsetWidth + "px"; //设置标题和内容的宽度
247
body.style.width = content.offsetWidth + width + "px"; //设置整体的宽度
248
title.style.margin = "auto"; //设置标题居中
249
250
background.style.width = title.offsetWidth + "px"; //设置背景的宽度
251
background.style.height = content.offsetHeight + "px"; //设置背景的高度
252
},
253
254
set_titleStyle : function () {
255
//设置标题样式 因为从CSS设置标题的高度会导致整体宽度自适应为100%所以只好从这里设置了
256
var wc = this, title = wc.title;
257
with (title.style) {
258
height = lineHeight = "30px";
259
}
260
},
261
262
set_position : function (a_x, a_y) {
263
//设置位置
264
var wc = this;
265
with (wc.body[0].style) { left = a_x - wc.titleLeft + "px", top = a_y + "px"; } //设置整体
266
with (wc.body[1].style) { left = wc.offset(wc.title).x + "px", top = a_y + wc.title.offsetHeight + "px"; } //设置背景
267
},
268
269
c_move : function () {
270
//鼠标移动的时候变化图片大小
271
var wc = this, mos = wc.reMouse(), cnt = wc.content, imgs = wc.images, t_imgs = wc.t_images, text = wc.text,
272
obj, tobj = { o : null, i : 0 }, pos, img, num, i;
273
274
if (wc.o_move.ing) return;
275
276
for (i = 0 ; i < imgs.length ; i ++) {
277
obj = imgs[i], img = obj.img,
278
num = (1 - Math.min(Math.abs(mos.x - wc.offset(img).x - img.offsetWidth / 2), wc.area) / wc.area);
279
//用1减去鼠标到图片的距离的绝对值,在除以距离得到百分比,然后分别乘以元素的高和宽得到增加数
280
img.style.width = obj.width + Math.round(num * obj.width) + "px";
281
img.style.height = obj.height + Math.round(num * obj.height) + "px";
282
img.style.marginTop = Math.round(num * 10) + "px";
283
if (num > 0.85) { tobj.o = img, tobj.i = i; } //控制字体
284
if (num > 0.5) { //换图
285
if (img.src != t_imgs[i][1]) img.src = t_imgs[i][1];
286
} else {
287
if (img.src != t_imgs[i][0]) img.src = t_imgs[i][0];
288
}
289
}
290
291
if (tobj.o) {
292
//设置字体
293
if (!text.ing) document.body.appendChild(text.temp);
294
295
pos = wc.offset(tobj.o), text.ing = true;
296
text.temp.innerHTML = text.items[tobj.i];
297
298
with (text.temp.style) {
299
left = pos.x + tobj.o.offsetWidth / 2 - text.temp.offsetWidth / 2 + "px";
300
top = pos.y + tobj.o.offsetHeight + 7 + "px";
301
}
302
} else if (text.ing) {
303
//删除字体
304
text.temp.parentNode.removeChild(text.temp);
305
text.ing = false;
306
}
307
},
308
309
c_out : function () {
310
//鼠标离开的时候设置恢复
311
var wc = this, e = window.event, imgs = wc.images, t_imgs = wc.t_images, i;
312
313
if (wc.content.contains(e.toElement || e.fromElement)) return;
314
for (i = 0 ; i < imgs.length ; i ++) {
315
with (imgs[i]) {
316
img.style.width = width + "px", img.style.height = height + "px", img.style.marginTop = "0px"; //恢复大小
317
if (img.src != t_imgs[i][0]) img.src = t_imgs[i][0]; //恢复图片地址
318
}
319
}
320
321
if (wc.text.ing) {
322
//删除字体
323
wc.text.temp.parentNode.removeChild(wc.text.temp);
324
wc.text.ing = false;
325
}
326
},
327
328
s_move : function () {
329
//鼠标按下![](https://www.cnblogs.com/Images/dot.gif)
330
var wc = this, mos = wc.reMouse(), tit = wc.title, pos = wc.offset(tit);
331
if (wc.i_fmove || wc.e_fmove) return;
332
with (wc.o_move) {
333
left = mos.x - pos.x, top = mos.y - pos.y;
334
with (temp.style) {
335
left = pos.x - 1 + "px", top = pos.y - 1 + "px";
336
width = tit.offsetWidth + "px", height = tit.offsetHeight + "px";
337
}
338
document.body.appendChild(temp);
339
ing = true;
340
}
341
wc.i_fmove = Object.addEvent(document, "onmousemove", wc.i_move.bind(wc));
342
wc.e_fmove = Object.addEvent(document, "onmouseup", wc.e_move.bind(wc));
343
},
344
345
i_move : function () {
346
//鼠标移动中![](https://www.cnblogs.com/Images/dot.gif)
347
var wc = this, mos = wc.reMouse(), obj = wc.o_move;
348
with (obj.temp.style) {
349
left = mos.x - obj.left + "px", top = mos.y - obj.top + "px";
350
}
351
352
if (window.IE) obj.temp.setCapture(); //为了拽出浏览器
353
try {
354
//拖拽时清除selection ranges对象
355
if (document.selection) document.selection.empty();
356
else window.getSelection().removeAllRanges();
357
} catch (exp) {}
358
},
359
360
e_move : function () {
361
//鼠标松开![](https://www.cnblogs.com/Images/dot.gif)
362
var wc = this, obj = wc.o_move.temp, pos = wc.offset(obj);
363
wc.set_position(wc.property.left = pos.x + 1, wc.property.top = pos.y + 1);
364
365
if (window.IE) obj.releaseCapture(); //为了拽出浏览器
366
367
obj.parentNode.removeChild(obj);
368
wc.o_move.ing = false;
369
370
Object.delEvent(document, "onmousemove", wc.i_fmove);
371
Object.delEvent(document, "onmouseup", wc.e_fmove);
372
wc.i_fmove = wc.e_fmove = null;
373
}
374
375
};
376![](/Images/OutliningIndicators/InBlock.gif)
377![](/Images/OutliningIndicators/InBlock.gif)
378
window.onload = function () {
379
var wc = new CMenu2([$("CMenu2"), $("CMenu2_Content")], 20, 5);
380
wc.load([
381
//默认小图路径,变化中换成相对大图路径,宽,高,终效果文字显示,点击后执行函数
382
["CMenu2/1.gif", "CMenu2/11.gif", 21, 23, "大界面", function () { alert("1号"); }],
383
["CMenu2/2.gif", "CMenu2/12.gif", 19, 21, "桌面日历", function () { alert("2号"); }],
384
["CMenu2/3.gif", "CMenu2/13.gif", 19, 21, "事件列表", function () { alert("3号"); }],
385
["CMenu2/4.gif", "CMenu2/14.gif", 21, 21, "添加事件", function () { alert("4号"); }],
386
["CMenu2/5.gif", "CMenu2/15.gif", 23, 24, "管理", function () { alert("5号"); }],
387
["CMenu2/6.gif", "CMenu2/16.gif", 18, 18, "退出", function () { window.opener = null; window.close(); }]
388
]);
389
};
390
</script>
391
</head>
392
<body>
393
<br />
394
<!--CMenu2菜单 开始-->
395
<div id="CMenu2"><div class="Title">标题</div><div class="Content"></div></div>
396
<div id="CMenu2_Content"></div>
397
<!--CMenu2菜单 结束-->
398
<div id="status" style="color:#FFFFFF"></div>
399
</body>
400
</html>
401![](/Images/OutliningIndicators/None.gif)
402![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
27
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
33
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
41
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
48
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
53
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
58
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
59
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
68
![](/Images/OutliningIndicators/None.gif)
69
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
70
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
92
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
102
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
117
![](/Images/OutliningIndicators/InBlock.gif)
118
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
123
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
126
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
127
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
143
![](/Images/OutliningIndicators/InBlock.gif)
144
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
145
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/InBlock.gif)
151
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
156
![](/Images/OutliningIndicators/InBlock.gif)
157
![](/Images/OutliningIndicators/InBlock.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/InBlock.gif)
160
![](/Images/OutliningIndicators/InBlock.gif)
161
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
162
![](/Images/OutliningIndicators/InBlock.gif)
163
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
164
![](/Images/OutliningIndicators/InBlock.gif)
165
![](/Images/OutliningIndicators/InBlock.gif)
166
![](/Images/OutliningIndicators/InBlock.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/InBlock.gif)
169
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
170
![](/Images/OutliningIndicators/InBlock.gif)
171
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
172
![](/Images/OutliningIndicators/InBlock.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/InBlock.gif)
175
![](/Images/OutliningIndicators/InBlock.gif)
176
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
179
![](/Images/OutliningIndicators/InBlock.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/InBlock.gif)
182
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
183
![](/Images/OutliningIndicators/InBlock.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
186
![](/Images/OutliningIndicators/InBlock.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/InBlock.gif)
192
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
193
![](/Images/OutliningIndicators/InBlock.gif)
194
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
195
![](/Images/OutliningIndicators/InBlock.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
200
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
201
![](/Images/OutliningIndicators/InBlock.gif)
202
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
203
![](/Images/OutliningIndicators/InBlock.gif)
204
![](/Images/OutliningIndicators/InBlock.gif)
205
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
206
![](/Images/OutliningIndicators/InBlock.gif)
207
![](/Images/OutliningIndicators/InBlock.gif)
208
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
209
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
210
![](/Images/OutliningIndicators/InBlock.gif)
211
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
212
![](/Images/OutliningIndicators/InBlock.gif)
213
![](/Images/OutliningIndicators/InBlock.gif)
214
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
215
![](/Images/OutliningIndicators/InBlock.gif)
216
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
217
![](/Images/OutliningIndicators/InBlock.gif)
218
![](/Images/OutliningIndicators/InBlock.gif)
219
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
220
![](/Images/OutliningIndicators/InBlock.gif)
221
![](/Images/OutliningIndicators/InBlock.gif)
222
![](/Images/OutliningIndicators/InBlock.gif)
223
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
224
![](/Images/OutliningIndicators/InBlock.gif)
225
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
226
![](/Images/OutliningIndicators/InBlock.gif)
227
![](/Images/OutliningIndicators/InBlock.gif)
228
![](/Images/OutliningIndicators/InBlock.gif)
229
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
230
![](/Images/OutliningIndicators/InBlock.gif)
231
![](/Images/OutliningIndicators/InBlock.gif)
232
![](/Images/OutliningIndicators/InBlock.gif)
233
![](/Images/OutliningIndicators/InBlock.gif)
234
![](/Images/OutliningIndicators/InBlock.gif)
235
![](/Images/OutliningIndicators/InBlock.gif)
236
![](/Images/OutliningIndicators/InBlock.gif)
237
![](/Images/OutliningIndicators/InBlock.gif)
238
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
239
![](/Images/OutliningIndicators/InBlock.gif)
240
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
241
![](/Images/OutliningIndicators/InBlock.gif)
242
![](/Images/OutliningIndicators/InBlock.gif)
243
![](/Images/OutliningIndicators/InBlock.gif)
244
![](/Images/OutliningIndicators/InBlock.gif)
245
![](/Images/OutliningIndicators/InBlock.gif)
246
![](/Images/OutliningIndicators/InBlock.gif)
247
![](/Images/OutliningIndicators/InBlock.gif)
248
![](/Images/OutliningIndicators/InBlock.gif)
249
![](/Images/OutliningIndicators/InBlock.gif)
250
![](/Images/OutliningIndicators/InBlock.gif)
251
![](/Images/OutliningIndicators/InBlock.gif)
252
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
253
![](/Images/OutliningIndicators/InBlock.gif)
254
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
255
![](/Images/OutliningIndicators/InBlock.gif)
256
![](/Images/OutliningIndicators/InBlock.gif)
257
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
258
![](/Images/OutliningIndicators/InBlock.gif)
259
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
260
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
261
![](/Images/OutliningIndicators/InBlock.gif)
262
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
263
![](/Images/OutliningIndicators/InBlock.gif)
264
![](/Images/OutliningIndicators/InBlock.gif)
265
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
266
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
267
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
268
![](/Images/OutliningIndicators/InBlock.gif)
269
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
270
![](/Images/OutliningIndicators/InBlock.gif)
271
![](/Images/OutliningIndicators/InBlock.gif)
272
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
273
![](/Images/OutliningIndicators/InBlock.gif)
274
![](/Images/OutliningIndicators/InBlock.gif)
275
![](/Images/OutliningIndicators/InBlock.gif)
276
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
277
![](/Images/OutliningIndicators/InBlock.gif)
278
![](/Images/OutliningIndicators/InBlock.gif)
279
![](/Images/OutliningIndicators/InBlock.gif)
280
![](/Images/OutliningIndicators/InBlock.gif)
281
![](/Images/OutliningIndicators/InBlock.gif)
282
![](/Images/OutliningIndicators/InBlock.gif)
283
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
284
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
285
![](/Images/OutliningIndicators/InBlock.gif)
286
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
287
![](/Images/OutliningIndicators/InBlock.gif)
288
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
289
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
290
![](/Images/OutliningIndicators/InBlock.gif)
291
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
292
![](/Images/OutliningIndicators/InBlock.gif)
293
![](/Images/OutliningIndicators/InBlock.gif)
294
![](/Images/OutliningIndicators/InBlock.gif)
295
![](/Images/OutliningIndicators/InBlock.gif)
296
![](/Images/OutliningIndicators/InBlock.gif)
297
![](/Images/OutliningIndicators/InBlock.gif)
298
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
299
![](/Images/OutliningIndicators/InBlock.gif)
300
![](/Images/OutliningIndicators/InBlock.gif)
301
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
302
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
303
![](/Images/OutliningIndicators/InBlock.gif)
304
![](/Images/OutliningIndicators/InBlock.gif)
305
![](/Images/OutliningIndicators/InBlock.gif)
306
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
307
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
308
![](/Images/OutliningIndicators/InBlock.gif)
309
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
310
![](/Images/OutliningIndicators/InBlock.gif)
311
![](/Images/OutliningIndicators/InBlock.gif)
312
![](/Images/OutliningIndicators/InBlock.gif)
313
![](/Images/OutliningIndicators/InBlock.gif)
314
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
315
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
316
![](/Images/OutliningIndicators/InBlock.gif)
317
![](/Images/OutliningIndicators/InBlock.gif)
318
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
319
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
320
![](/Images/OutliningIndicators/InBlock.gif)
321
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
322
![](/Images/OutliningIndicators/InBlock.gif)
323
![](/Images/OutliningIndicators/InBlock.gif)
324
![](/Images/OutliningIndicators/InBlock.gif)
325
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
326
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
327
![](/Images/OutliningIndicators/InBlock.gif)
328
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
329
![](/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
330
![](/Images/OutliningIndicators/InBlock.gif)
331
![](/Images/OutliningIndicators/InBlock.gif)
332
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
333
![](/Images/OutliningIndicators/InBlock.gif)
334
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
335
![](/Images/OutliningIndicators/InBlock.gif)
336
![](/Images/OutliningIndicators/InBlock.gif)
337
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
338
![](/Images/OutliningIndicators/InBlock.gif)
339
![](/Images/OutliningIndicators/InBlock.gif)
340
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
341
![](/Images/OutliningIndicators/InBlock.gif)
342
![](/Images/OutliningIndicators/InBlock.gif)
343
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
344
![](/Images/OutliningIndicators/InBlock.gif)
345
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
346
![](/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
347
![](/Images/OutliningIndicators/InBlock.gif)
348
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
349
![](/Images/OutliningIndicators/InBlock.gif)
350
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
351
![](/Images/OutliningIndicators/InBlock.gif)
352
![](/Images/OutliningIndicators/InBlock.gif)
353
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
354
![](/Images/OutliningIndicators/InBlock.gif)
355
![](/Images/OutliningIndicators/InBlock.gif)
356
![](/Images/OutliningIndicators/InBlock.gif)
357
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
358
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
359
![](/Images/OutliningIndicators/InBlock.gif)
360
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
361
![](/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
362
![](/Images/OutliningIndicators/InBlock.gif)
363
![](/Images/OutliningIndicators/InBlock.gif)
364
![](/Images/OutliningIndicators/InBlock.gif)
365
![](/Images/OutliningIndicators/InBlock.gif)
366
![](/Images/OutliningIndicators/InBlock.gif)
367
![](/Images/OutliningIndicators/InBlock.gif)
368
![](/Images/OutliningIndicators/InBlock.gif)
369
![](/Images/OutliningIndicators/InBlock.gif)
370
![](/Images/OutliningIndicators/InBlock.gif)
371
![](/Images/OutliningIndicators/InBlock.gif)
372
![](/Images/OutliningIndicators/InBlock.gif)
373
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
374
![](/Images/OutliningIndicators/InBlock.gif)
375
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
376
![](/Images/OutliningIndicators/InBlock.gif)
377
![](/Images/OutliningIndicators/InBlock.gif)
378
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
379
![](/Images/OutliningIndicators/InBlock.gif)
380
![](/Images/OutliningIndicators/InBlock.gif)
381
![](/Images/OutliningIndicators/InBlock.gif)
382
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
383
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
384
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
385
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
386
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
387
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
388
![](/Images/OutliningIndicators/InBlock.gif)
389
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
390
![](/Images/OutliningIndicators/None.gif)
391
![](/Images/OutliningIndicators/None.gif)
392
![](/Images/OutliningIndicators/None.gif)
393
![](/Images/OutliningIndicators/None.gif)
394
![](/Images/OutliningIndicators/None.gif)
395
![](/Images/OutliningIndicators/None.gif)
396
![](/Images/OutliningIndicators/None.gif)
397
![](/Images/OutliningIndicators/None.gif)
398
![](/Images/OutliningIndicators/None.gif)
399
![](/Images/OutliningIndicators/None.gif)
400
![](/Images/OutliningIndicators/None.gif)
401
![](/Images/OutliningIndicators/None.gif)
402
![](/Images/OutliningIndicators/None.gif)