Advertisement
bitetti

Selection Over Power 1

Apr 19th, 2012
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //http://www.inf.pucrs.br/~pinho/CG/Aulas/OpenGL/Interseccao/CalcIntersec.html
  2. //http://eusouryca.com/meninaswtf/
  3. //http://www.greywyvern.com/code/php/binary2base64
  4. var wwp_selection_and_hint_from_hell = (function()
  5. {
  6.     // search and regaça all imagens with title
  7.     this.init = function()
  8.     {
  9.         var list = $('img');//$('.sidebar img');
  10.         for(var i=0; i<list.length; i++)
  11.         {
  12.             var img = $(list[i]);
  13.             if (img.attr('title') || (img.parent().attr('title') && img.parent().attr('href')))
  14.             {
  15.                 img.mouseover(this.over).mouseout(this.out);
  16.                 if(!img.attr('title'))
  17.                 {
  18.                     img.attr('title',img.parent().attr('title'));
  19.                     img.parent().attr('title','');
  20.                 }
  21.                 var tit = img.attr('title');
  22.                 img.attr('title','').data('vtitle',tit);
  23.             }
  24.         }
  25.         $(document.body).append(this.overlay);//.append(this.circle).append(box);
  26.        
  27.         for(var i=0;i<3;i++)
  28.         {
  29.             var l = $(document.createElement('img'));
  30.             l.css({'width':'100px','height':'3px','position':'absolute'}).attr('src',linData);
  31.             this.lin.push(l);
  32.             this.setOrigin(l,0,1);
  33.             this.overlay.append(l);
  34.         }
  35.        
  36.         this.anim();
  37.        
  38.         this.line(0,20,20,1000,1000);
  39.     }
  40.     this.setOrigin = function(o,x,y)
  41.     {
  42.         o.css({'-moz-transform-origin':x+'px '+y+'px','-ms-transform-origin':x+'px '+y+'px',
  43.             '-o-transform-origin':x+'px '+y+'px','-webkit-transform-origin':x+'px '+y+'px'});
  44.     }
  45.    
  46.     this.over = function(e)
  47.     {
  48.         var o = $(e.target);
  49.         var self = wwp_selection_and_hint_from_hell;
  50.         o.css(self.overStyle);
  51.         var off = o.offset();
  52.         self.Tx = off.left + o.width()*0.5 - 64;
  53.         self.Ty = off.top + o.height()*0.5 - 64;
  54.         self.talpha=1;
  55.         //target box
  56.         self.ofB=140;
  57.         /*var x = off.left + o.width() + 80;
  58.         if ((x+self.box.width())>$(window).width())
  59.             x = off.left - 80 - self.box.width();*/
  60.         var x = off.left - o.width() - 80;
  61.         if (x<0)
  62.         {
  63.             x = off.left + o.width() + 80;
  64.             self.ofB = 0;
  65.         }
  66.         self.Tbx = x;
  67.         self.Tby = e.pageY;
  68.         o.bind('mousemove',self.move);
  69.         self.info.html(o.data('vtitle'));
  70.     }
  71.     this.out = function(e)
  72.     {
  73.         var o = $(e.target);
  74.         var self = wwp_selection_and_hint_from_hell;
  75.         o.css(self.outStyle);
  76.         self.talpha=0;
  77.         o.unbind('mousemove',self.move);
  78.     }
  79.     this.move = function(e)
  80.     {
  81.         var self = wwp_selection_and_hint_from_hell;
  82.         self.mx = e.pageX;
  83.         self.my = e.pageY;
  84.     }
  85.     this.click = function(e)
  86.     {
  87.         var o = $(e);
  88.         var self = wwp_selection_and_hint_from_hell;
  89.         //window.open(self.link,self.link);
  90.     }
  91.     this.rot = function(el,a)
  92.     {
  93.         el.css({'-moz-transform':'rotate('+a+'deg)',
  94.             '-ms-transform':'rotate('+a+'deg)',
  95.             '-o-transform':'rotate('+a+'deg)',
  96.             '-webkit-transform':'rotate('+a+'deg)'});
  97.     }
  98.     this.line = function(i,x,y,xt,yt)
  99.     {
  100.         var lin = this.lin[i];
  101.         var _x = xt-x;
  102.         var _y = yt-y;
  103.         var l = Math.sqrt(_x*_x + _y*_y);
  104.         var a = Math.atan2(_y,_x) / this.RAD;
  105.         lin.width(l);
  106.         this.rot(lin,a);
  107.         lin.css('top',y).css('left',x);
  108.     }
  109.    
  110.     this.anim = function()
  111.     {
  112.         var D=0.3;
  113.         var Db=0.16;
  114.         if (this.alpha>0.05)
  115.         {
  116.             this.x += (this.Tx-this.x)*D;
  117.             this.y += (this.Ty-this.y)*D;
  118.             this.ang += 7;
  119.             this.circle.css('left',this.x).css('top',this.y);
  120.             this.rot(this.circle,this.ang);
  121.            
  122.             this.bx += (this.Tbx-this.bx)*Db;
  123.             this.by += (this.my-this.by)*Db;
  124.             this.box.css('left',this.bx).css('top',this.by);
  125.            
  126.             var l0x = this.Tx+64;
  127.             var l0y = this.Ty+64;
  128.             var l1x = this.bx+this.ofB;
  129.             var l1y = this.by+40;
  130.             //this.line(0,l0x,l0y, l1x,l1y);
  131.             this.line(0,l0x,l0y, l0x,l1y);
  132.             this.line(1,l0x,l1y, l1x,l1y);
  133.             this.line(2,0,0,0,0);
  134.            
  135.             this.overlay.css({'display':'block','opacity':this.alpha,'filter':String('alpha(opacity='+parseInt(this.alpha*100)+')')});
  136.         } else this.overlay.css('display','none')
  137.         this.alpha += (this.talpha-this.alpha)*D;
  138.        
  139.         setTimeout('wwp_selection_and_hint_from_hell.anim()',35);
  140.     }
  141.    
  142.     this.RAD = Math.PI/180;
  143.     this.alpha=0; this.talpha=0;
  144.     this.x=0; this.y=0;
  145.     this.Tx=0; this.Ty=0;
  146.     this.bx=0; this.by=0;
  147.     this.Tbx=0; this.Tby=0;
  148.     this.ofB = 140;
  149.     this.ang=0;
  150.     this.overStyle = {"-webkit-box-shadow":"0px 0px 8px 0px rgb(121, 235, 93)","box-shadow":"0px 0px 8px 0px rgb(121, 235, 93)"};
  151.     this.outStyle = {"-webkit-box-shadow":"none","box-shadow":"none"};
  152.     //circle
  153.     this.circle = $(document.createElement('img'));
  154.     this.circle.css({'position':'absolute','pointer-events':'none'}).attr('src','circle.png');
  155.     this.setOrigin(this.circle,64,64);
  156.     // linhas
  157.     var linData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3AQTDhU1dZwneAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAF0lEQVQI12No+Nzwn4HhOcN/pgaeBgYANLsF5xLNRbwAAAAASUVORK5CYII%3D';
  158.     this.lin = [];
  159.     // box
  160.     this.box = $(document.createElement('div'));
  161.     this.box.css({'position':'absolute', 'width':'140px', 'height':'80px', 'overflow':'hidden',
  162.             'background':'rgba(0,0,0,0.75)', 'border':'1px #000 solid', 'color':'#f0f050','pointer-events':'none'
  163.             });
  164.     this.title = $(document.createElement('h4'));
  165.     this.info = $(document.createElement('div'));
  166.     var hr = $(document.createElement('hr'));
  167.     this.box.append(this.title).append(hr).append(this.info);
  168.     // overbox
  169.     this.overlay = $(document.createElement('div'));
  170.     this.overlay.css({'position':'absolute', 'width':'100%', 'height':'100%', 'overflow':'hidden','z-index':'400','top':'0px','left':'0px','pointer-events':'none'});
  171.    
  172.     this.overlay.append(this.box).append(this.circle);
  173.    
  174.     return this;
  175. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement