Team:Grenoble/script

From 2012.igem.org

(Difference between revisions)
Line 79: Line 79:
var e=this.elem.style;
var e=this.elem.style;
         this.from=(b===undefined?(parseFloat(e.opacity)):b);
         this.from=(b===undefined?(parseFloat(e.opacity)):b);
 +
        d=d||{};
 +
    this.duration=d.duration||500;
 +
    this.frameRate=d.frameRate||30;
 +
    this.onFinish=d.onFinish;
 +
    this.totalFrames=Math.ceil(this.duration/1000*this.frameRate);
 +
    this.perFrame=(this.to-this.from)/this.totalFrames;
 +
    this.frameNb=0;var f=this;
 +
    this.next=function(){
 +
this.prog=setTimeout(function(){f.frame()},1000/this.frameRate)};
 +
this.frame=function(){
 +
    p(this.elem,this.from+this.perFrame*this.frameNb);
 +
    if(this.frameNb===this.totalFrames){
 +
p(this.elem,this.to);
 +
if(typeof this.onFinish=='function'){
 +
    setTimeout(this.onFinish,1)
 +
}
 +
    }else{
 +
this.frameNb++;
 +
this.next()}};
 +
this.next()}function A(c,a,b){
 +
    var d,e,f,j,k,l,i,g,h;
 +
    b=b||{};
 +
    d=b.max_w;
 +
    e=b.min_w;
 +
    f=b.max_h;
 +
    j=b.max_h;
 +
    k=b.round===undefined?1:b.round;
 +
    l=c/a;
 +
    i=a/c;
 +
    g=a;
 +
    h=c;
 +
    if(h<e){
 +
h=e;
 +
g=h*i
 +
    }
 +
    if(g<j){
 +
g=j;
 +
h=g*l
 +
    }
 +
    if(d&&(h>d)){
 +
h=d;
 +
g=h*i
 +
    }
 +
    if(f&&(g>f)){
 +
g=f;
 +
h=g*l
 +
    }
 +
    h=h<0?0:h;
 +
    g=g<0?0:g;
 +
    return{w:k?Math.round(h):h,h:k?Math.round(g):g}
 +
}
 +
var q={
 +
    defaults:{
 +
mode:'max',
 +
enlarge:1,
 +
reduce:1,
 +
ffHack:0,
 +
zIndex:-1,
 +
position:'absolute',
 +
align:'center',
 +
vertAlign:'top',
 +
fadeAfter:400,
 +
fadeOptions:{duration:1000,frameRate:25}
 +
    },
 +
    redim:function(){
 +
      var c=q,a,b,d=w(),e,f,j,k,l,i,g,h,m,n;
 +
      a=c.img;f=j=k=l='';
 +
      b=c.opt;
 +
      i=a.fileDim;
 +
      if(i){
 +
  if(b.mode=='full'){
 +
      g=m=d.w;
 +
      h=n=d.h;
 +
      if(!b.enlarge){
 +
  if(g>i.w){
 +
      g=m=i.w
 +
  }
 +
  if(h>i.h){
 +
      h=n=i.h
 +
  }
 +
      }
 +
      if(!b.reduce){
 +
  if(m<i.w){
 +
      m=i.w;
 +
      g=Math.max(m,g)
 +
  }
 +
  if(n<i.h){
 +
      n=i.h;
 +
      h=Math.max(n,h)
 +
  }
 +
      }
 +
  }else{
 +
      m=g=d.w;
 +
      n=h=0;
 +
      if(!b.reduce){
 +
  g=0
 +
      }
 +
  }
 +
  i=A(i.w,i.h,{min_w:m,win_h:n,max_w:g,max_h:h,round:1});
 +
  a.width=i.w;
 +
  a.height=i.h;
 +
  if(!a.width){
 +
      a.removeAttribute("width")
 +
  }
 +
  if(!a.height){
 +
      a.removeAttribute("height")
 +
  }
 +
  switch(b.align){
 +
      case'left':k='0px';
 +
break;
 +
      case'right':l='0px';
 +
  break;
 +
      default:k=-Math.round((i.w-d.w)/2)+'px'
 +
  }
 +
  if(b.vertAlign=='bottom'){
 +
      j='0px'
 +
  }else if(b.vertAlign=='middle'){
 +
      e=b.position=="fixed"?d.h:x().h;
 +
      f=(-b.ffHack+(e-a.offsetHeight)/2)+"px"
 +
  }else{
 +
      f=a.hack||'0px'
 +
  }
 +
  s(a,{left:k,right:l,top:f,bottom:j})
 +
      }
 +
  }
 +
    ,show:function(){
 +
var c=q,a;
 +
a=c.img;
 +
a.fileDim={
 +
    w:a.naturalWidth||a.clientWidth,h:a.naturalHeight||a.clientHeight
 +
};
 +
c.redim();
 +
if(c.fadeIt){
 +
    z(c.img,1,0,c.opt.fadeOptions)
 +
}else{
 +
    p(a,1)
 +
}
 +
    },
 +
init:function(c,a){
 +
var b=q,d=v('body')[0],e,f,j;
 +
a=u(a,this.defaults);
 +
if(t&&t<7){
 +
    a.position='absolute'
 +
}
 +
b.opt=a;
 +
e=a.fadeAfter;
 +
f=b.img=o.createElement('img');
 +
f.id="bgMax";
 +
s(f,{zIndex:a.zIndex,position:a.position});
 +
j=navigator.userAgent.match(/Firefox.(\d+(\.\d+))/);
 +
if(j&&parseFloat(j[1])<3){
 +
    s(d,{zIndex:0,position:'relative',top:0,left:0});
 +
    f.hack='-'+a.ffHack}d.insertBefore(f,d.childNodes[0]);
 +
    f.onload=b.show;
 +
    if(e!==false){
 +
p(f,0);
 +
if(e){
 +
    setTimeout(function(){b.fadeIt=1},e)
 +
}else{
 +
    b.fadeIt=1
 +
}
 +
    }
 +
    y(r,'resize',b.redim);
 +
    f.src=c
 +
    }
 +
};
 +
r.bgMax=q
 +
})
 +
(window,document);
 +
alert("coucou");
 +
     }
     }

Revision as of 16:34, 11 July 2012