07_Menu2/Menu.js
1
2 var vpm =26; // vzdialenost poloziek menu
3
4 function CPolozkaMenu (M, A)
5 { this.M=M;
6 this.A=A;
7 this.x=10;
8 this.y=70;
9
10 this.A.targetElement = M.id;
11 this.A.orign = "parent";
12 this.A.begin = "indefinite";
13 this.A.fill = "freeze";
14
15 M.attachEvent ('onmouseover', Nad);
16 M.attachEvent ('onmouseout', Mimo);
17
18 this.Posun = Posun;
19 function Posun(x,y)
20 {
21
22 this.M.style.display='block';
23 this.A.path = Cesta(this.x, this.y, x, y);
24 this.A.beginElement();
25 this.x=x; this.y=y;
26 }
27
28 function Cesta(xz, yz, xc, yc)
29 {
30 var x1= xz - Math.round((xz-xc)/2);
31 var y1= yz - Math.round((yc-yz)/2);
32 var x2= xc;
33 var y2= yc - Math.round((yc-yz)/2);
34
35 var c;
36 c = " M " + xz + " " + yz;
37 c += " C " + x1 + " " + y1 ;
38 c += " " + x2 + " " + y2 ;
39 c += " " + xc + " " + yc ;
40 return c;
41 }
42
43 this.Skry = Skry;
44 function Skry()
45 {
46 this.M.style.display='none';
47 }
48 }
49
50 function CMenu ()
51 {
52 this.Polozky = new Array();
53
54 this.PridajPolozku = PridajPolozku;
55 function PridajPolozku(M, A)
56 {
57 A.dur = .2*(1+ this.Polozky.length);
58 this.Polozky.push(new CPolozkaMenu(M, A ));
59 }
60
61 this.Posun = Posun;
62 function Posun ()
63 {
64 var x=event.clientX;
65 var y=event.clientY;
66 for (var i=0; i<this.Polozky.length; i++)
67 this.Polozky[i].Posun(x, y+i*vpm);
68 }
69
70 this.Skry = Skry;
71 function Skry ()
72 {
73 for (var i=0; i<this.Polozky.length; i++)
74 this.Polozky[i].Skry();
75 }
76 }
77
78 function Nad () { event.srcElement.className="AMenu"; }
79 function Mimo() { event.srcElement.className="Menu"; }
80
81 var Menu = new CMenu();