1
<html>
2
<head>
3
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
4
<style type='text/css'>
5
.folder1 {}{text-align:center; background: #00A4E1; border: 2px outset; background-image:url(Images/skin/folder_bg.gif); border-color: #00BBFF #0077FF #FFFFFF #00BBFF; cursor: hand; font-size: 9pt}
6
.folder2 {}{text-align:center; background: #20C1FF; border: 2px outset; background-image:url(Images/skin/folder_bg.gif); border-color: #00BBFF #0077FF #0077FF #60D3FF; cursor: hand; font-size: 9pt}
7
.foldercont{}{background: #D9ECF4; border: 1px outset; border-color: #B0D8FF #0077FF #0077FF #B0D8FF; font-size: 9pt; cursor: default;}
8
</style>
9
10
<SCRIPT LANGUAGE=javascript>
11
onload=function(){
12
var lstr = ""
13
for (var i=0; i<30; i++) lstr+= "haha..<br>";
14
var lofolder = new outlookfolder(null,335,100,15);
15
lofolder.addfolder("菜单1","1..<br>2..");
16
lofolder.addfolder("菜单2",lstr);
17
lofolder.addfolder("菜单3");
18
lofolder.addfolder("菜单4");
19
lofolder.addfolder("菜单5");
20
lofolder.showfolderX(0);
21
}
22
//[容器,高,宽,展开速度]
23
function outlookfolder(aoP,aih,aiw,ait){
24
if (aih==null) aih=400;
25
if (aiw==null) aiw="100%";
26
if (ait==null) ait=20;
27
var loMain = document.createElement("<span style='overflow:hidden;height:"+aih+";"+aiw+"'></span>");
28
var lsUniqueID = loMain.uniqueID;
29
var loSlide = document.createElement("span");
30
loSlide.innerHTML = "<button onmouseout='"+lsUniqueID+".SlideClickStop()' onmousedown='"+lsUniqueID+".SlideClickStart();"+lsUniqueID+".SlideCilckup()' style='position:absolute;display:none;10;height:10'></button><button onmouseout='"+lsUniqueID+".SlideClickStop()' onmousedown='"+lsUniqueID+".SlideClickStart();"+lsUniqueID+".SlideCilckdown()' style='position:absolute;display:none;10;height:10'></button>";
31
var liContH = aih;
32
if (aoP==null){
33
document.body.appendChild(loMain);
34
document.body.appendChild(loSlide);
35
}else{
36
aoP.appendChild(loMain);
37
aoP.appendChild(loSlide);
38
}
39
//增加一个目录[名字,内容]
40
loMain.addfolder = function(str,cont){
41
var loPar = document.createElement("SPAN");
42
loPar.innerHTML = "<span onclick='"+lsUniqueID+".showme(this)' style='overflow:hidden;100%;' class='folder1'></span><span style='position:relative;overflow:hidden;100%;height:1' class='foldercont'></span>";
43
this.appendChild(loPar);
44
loPar.children[0].innerHTML = (str==null?" ":str);
45
loPar.children[1].innerHTML = (cont==null?" ":cont);
46
liContH -= parseInt(loPar.children[0].offsetHeight);
47
}
48
//打开/关闭第x个目录夹
49
loMain.showfolderX = function(aix){
50
loMain.showme(loMain.children[aix].children[0])
51
}
52
//打开/关闭当前obj所在的目录
53
loMain.showme = function(obj){
54
if (loMain.moving) return;
55
loMain.moving = true;
56
if (obj.bOpen){
57
obj.bOpen = false;
58
loMain.closefolder(obj.parentElement.children[1]);
59
obj.className = 'folder1';
60
}else{
61
obj.bOpen = true;
62
loMain.openfolder(obj.parentElement.children[1]);
63
obj.className = 'folder2';
64
var lxfolders = loMain.children;
65
for (var i=0; i<lxfolders.length; i++){
66
var loChild = lxfolders[i].children[0];
67
if(loChild.uniqueID!=obj.uniqueID){
68
lxfolders[i].children[1].style.height=1;
69
loChild.bOpen = false;
70
loChild.className = 'folder1';
71
}
72
}
73
}
74
loMain.SlideItemsAction(obj.parentElement.children[1]);
75
}
76
//为目录内容设置Slide
77
var loSlideItem = null;
78
var lbSlideing = false;
79
loMain.SlideCilckdown = function(){ //向下滚动
80
loSlideItem.scrollTop += 2;
81
if (!lbSlideing&&loSlideItem.scrollTop<loSlideItem.scrollHeight) setTimeout(lsUniqueID+'.SlideCilckdown()',1)
82
}
83
loMain.SlideCilckup = function(){ //向上滚动
84
loSlideItem.scrollTop -= 2;
85
if (!lbSlideing&&loSlideItem.scrollTop>0) setTimeout(lsUniqueID+'.SlideCilckup()',1)
86
}
87
loMain.SlideClickStart = function(){ //允许开始滚动
88
lbSlideing=false;
89
}
90
loMain.SlideClickStop = function(){ //强制停止滚动
91
lbSlideing=true;
92
}
93
loMain.SlideItemsAction = function(obj){
94
var loUp = loSlide.children[0];
95
var loDown = loSlide.children[1];
96
if (obj.scrollHeight<=liContH||obj.parentElement.children[0].bOpen!=true){
97
loUp.style.display="none";
98
loDown.style.display="none";
99
}else{
100
loSlideItem = obj;
101
var lxOffset = getTrueOffset(obj);
102
var lileft = lxOffset[0]+obj.offsetWidth-20;
103
var litop = lxOffset[1]+obj.offsetHeight+5;
104
with(loUp.style){
105
display="";
106
left=lileft;
107
top=litop;
108
}
109
with(loDown.style){
110
display="";
111
left=lileft;
112
top=litop+liContH-40;
113
}
114
}
115
}
116
//逐渐关闭obj所在的内容显示
117
loMain.closefolder = function(obj,ai){
118
if (ai==null) ai=liContH;
119
if (ai<ait){ obj.style.height=1; ai=1}
120
if (ai>1){
121
obj.style.height = ai;
122
ai -= ait;
123
setTimeout(lsUniqueID+'.closefolder('+obj.uniqueID+','+ai+')',1)
124
return;
125
}
126
loMain.moving = false;
127
}
128
//逐渐打开obj所在的内容显示
129
loMain.openfolder = function(obj,ai){
130
if (ai==null) ai=1;
131
if (liContH>ai){
132
obj.style.height = ai;
133
ai += ait;
134
setTimeout(lsUniqueID+'.openfolder('+obj.uniqueID+','+ai+')',1)
135
return;
136
}
137
loMain.moving = false;
138
}
139
function getTrueOffset(e){
140
var x=0; var y=0;
141
if(!e)return [x,y];
142
while(e){
143
x+=parseInt(e.offsetLeft);
144
y+=parseInt(e.offsetTop);
145
e=e.offsetParent;
146
}
147
return [x,y];
148
}
149
return loMain;
150
}
151
</SCRIPT>
152

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
