Team:UCL PG
From 2013.igem.org
Line 5: | Line 5: | ||
<script type="text/javascript"> | <script type="text/javascript"> | ||
- | <![CDATA[ | + | // <![CDATA[ |
- | var colour=" | + | var colour="random"; // in addition to "random" can be set to any valid colour eg "#f0f" or "red" |
- | + | var sparkles=50; | |
- | + | ||
- | + | ||
- | /*************************** | + | /**************************** |
- | * | + | * Tinkerbell Magic Sparkle * |
- | *(c) | + | *(c)2005-13 mf2fm web-design* |
* http://www.mf2fm.com/rv * | * http://www.mf2fm.com/rv * | ||
* DON'T EDIT BELOW THIS BOX * | * DON'T EDIT BELOW THIS BOX * | ||
- | + | ****************************/ | |
- | + | var x=ox=400; | |
- | var | + | var y=oy=300; |
- | + | ||
- | + | ||
- | var | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
var swide=800; | var swide=800; | ||
var shigh=600; | var shigh=600; | ||
- | var | + | var sleft=sdown=0; |
+ | var tiny=new Array(); | ||
+ | var star=new Array(); | ||
+ | var starv=new Array(); | ||
+ | var starx=new Array(); | ||
+ | var stary=new Array(); | ||
+ | var tinyx=new Array(); | ||
+ | var tinyy=new Array(); | ||
+ | var tinyv=new Array(); | ||
- | function | + | window.onload=function() { if (document.getElementById) { |
- | var | + | var i, rats, rlef, rdow; |
- | + | for (var i=0; i<sparkles; i++) { | |
- | + | var rats=createDiv(3, 3); | |
- | + | rats.style.visibility="hidden"; | |
- | + | rats.style.zIndex="999"; | |
+ | document.body.appendChild(tiny[i]=rats); | ||
+ | starv[i]=0; | ||
+ | tinyv[i]=0; | ||
+ | var rats=createDiv(5, 5); | ||
+ | rats.style.backgroundColor="transparent"; | ||
+ | rats.style.visibility="hidden"; | ||
+ | rats.style.zIndex="999"; | ||
+ | var rlef=createDiv(1, 5); | ||
+ | var rdow=createDiv(5, 1); | ||
+ | rats.appendChild(rlef); | ||
+ | rats.appendChild(rdow); | ||
+ | rlef.style.top="2px"; | ||
+ | rlef.style.left="0px"; | ||
+ | rdow.style.top="0px"; | ||
+ | rdow.style.left="2px"; | ||
+ | document.body.appendChild(star[i]=rats); | ||
} | } | ||
- | } | + | set_width(); |
+ | sparkle(); | ||
+ | }} | ||
- | + | function sparkle() { | |
- | + | var c; | |
- | function | + | if (Math.abs(x-ox)>1 || Math.abs(y-oy)>1) { |
- | + | ox=x; | |
- | + | oy=y; | |
- | + | for (c=0; c<sparkles; c++) if (!starv[c]) { | |
- | + | star[c].style.left=(starx[c]=x)+"px"; | |
- | + | star[c].style.top=(stary[c]=y+1)+"px"; | |
- | + | star[c].style.clip="rect(0px, 5px, 5px, 0px)"; | |
- | + | star[c].childNodes[0].style.backgroundColor=star[c].childNodes[1].style.backgroundColor=(colour=="random")?newColour():colour; | |
- | + | star[c].style.visibility="visible"; | |
- | + | starv[c]=50; | |
- | + | break; | |
- | + | } | |
- | + | } | |
- | + | for (c=0; c<sparkles; c++) { | |
- | + | if (starv[c]) update_star(c); | |
+ | if (tinyv[c]) update_tiny(c); | ||
+ | } | ||
+ | setTimeout("sparkle()", 40); | ||
} | } | ||
- | function | + | function update_star(i) { |
- | + | if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)"; | |
- | + | if (starv[i]) { | |
- | + | stary[i]+=1+Math.random()*3; | |
- | + | starx[i]+=(i%5-2)/5; | |
- | + | if (stary[i]<shigh+sdown) { | |
- | + | star[i].style.top=stary[i]+"px"; | |
- | + | star[i].style.left=starx[i]+"px"; | |
- | + | } | |
- | + | else { | |
- | + | star[i].style.visibility="hidden"; | |
- | + | starv[i]=0; | |
- | + | return; | |
- | + | } | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | } | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
} | } | ||
else { | else { | ||
- | + | tinyv[i]=50; | |
- | + | tiny[i].style.top=(tinyy[i]=stary[i])+"px"; | |
+ | tiny[i].style.left=(tinyx[i]=starx[i])+"px"; | ||
+ | tiny[i].style.width="2px"; | ||
+ | tiny[i].style.height="2px"; | ||
+ | tiny[i].style.backgroundColor=star[i].childNodes[0].style.backgroundColor; | ||
+ | star[i].style.visibility="hidden"; | ||
+ | tiny[i].style.visibility="visible" | ||
} | } | ||
} | } | ||
- | function | + | function update_tiny(i) { |
- | if | + | if (--tinyv[i]==25) { |
- | + | tiny[i].style.width="1px"; | |
- | + | tiny[i].style.height="1px"; | |
+ | } | ||
+ | if (tinyv[i]) { | ||
+ | tinyy[i]+=1+Math.random()*3; | ||
+ | tinyx[i]+=(i%5-2)/5; | ||
+ | if (tinyy[i]<shigh+sdown) { | ||
+ | tiny[i].style.top=tinyy[i]+"px"; | ||
+ | tiny[i].style.left=tinyx[i]+"px"; | ||
+ | } | ||
+ | else { | ||
+ | tiny[i].style.visibility="hidden"; | ||
+ | tinyv[i]=0; | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | else tiny[i].style.visibility="hidden"; | ||
} | } | ||
- | function | + | document.onmousemove=mouse; |
- | + | function mouse(e) { | |
- | + | if (e) { | |
- | + | y=e.pageY; | |
- | + | x=e.pageX; | |
- | + | } | |
- | + | else { | |
- | + | set_scroll(); | |
- | + | y=event.y+sdown; | |
- | + | x=event.x+sleft; | |
- | + | } | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
} | } | ||
- | function | + | window.onscroll=set_scroll; |
- | + | function set_scroll() { | |
- | + | if (typeof(self.pageYOffset)=='number') { | |
- | + | sdown=self.pageYOffset; | |
- | + | sleft=self.pageXOffset; | |
- | + | } | |
- | + | else if (document.body && (document.body.scrollTop || document.body.scrollLeft)) { | |
- | + | sdown=document.body.scrollTop; | |
- | + | sleft=document.body.scrollLeft; | |
+ | } | ||
+ | else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) { | ||
+ | sleft=document.documentElement.scrollLeft; | ||
+ | sdown=document.documentElement.scrollTop; | ||
+ | } | ||
+ | else { | ||
+ | sdown=0; | ||
+ | sleft=0; | ||
+ | } | ||
} | } | ||
Line 146: | Line 167: | ||
if (document.documentElement.clientHeight>0) sh_min=document.documentElement.clientHeight; | if (document.documentElement.clientHeight>0) sh_min=document.documentElement.clientHeight; | ||
} | } | ||
- | if (typeof(self.innerWidth) | + | if (typeof(self.innerWidth)=='number' && self.innerWidth) { |
if (self.innerWidth>0 && self.innerWidth<sw_min) sw_min=self.innerWidth; | if (self.innerWidth>0 && self.innerWidth<sw_min) sw_min=self.innerWidth; | ||
if (self.innerHeight>0 && self.innerHeight<sh_min) sh_min=self.innerHeight; | if (self.innerHeight>0 && self.innerHeight<sh_min) sh_min=self.innerHeight; | ||
Line 161: | Line 182: | ||
shigh=sh_min; | shigh=sh_min; | ||
} | } | ||
- | ]]> | + | |
+ | function createDiv(height, width) { | ||
+ | var div=document.createElement("div"); | ||
+ | div.style.position="absolute"; | ||
+ | div.style.height=height+"px"; | ||
+ | div.style.width=width+"px"; | ||
+ | div.style.overflow="hidden"; | ||
+ | return (div); | ||
+ | } | ||
+ | |||
+ | function newColour() { | ||
+ | var c=new Array(); | ||
+ | c[0]=255; | ||
+ | c[1]=Math.floor(Math.random()*256); | ||
+ | c[2]=Math.floor(Math.random()*(256-c[1]/2)); | ||
+ | c.sort(function(){return (0.5 - Math.random());}); | ||
+ | return ("rgb("+c[0]+", "+c[1]+", "+c[2]+")"); | ||
+ | } | ||
+ | // ]]> | ||
</script> | </script> | ||
Revision as of 03:07, 29 September 2013
About iGEM
International Genetically Engineered Machine (iGEM) is an annual world-wide synthetic biology competition aimed at university students. Each year, participating teams from all over the world are challenged to bring their innovative ideas to life by applying engineering methodology in life sciences to ultimately produce “Biobricks” which are modular biological circuit parts that can be utilized to solve global issues.
About us
We are a combination of dedicated graduate students and research assistants from both UCL Cancer Institute and UCL Engineering.
About our idea
Improvising activation of the circuit with light, evolve luminescent proteins. Allow preclinical genetic imaging to study endogenous and disease processes in vivo and to image the genetic behaviour of life.