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();