Team:WHU-China/Team/Gallary

From 2011.igem.org

(Difference between revisions)
Line 1: Line 1:
-
<html>
+
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
-
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
+
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
-
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
+
<title>JS实现图片翻书效果-懒人图库</title>
-
<script type="text/javascript" src="http://gettopup.com/releases/latest/top_up-min.js"></script>
+
<META http-equiv=imagetoolbar content=no>
-
<style type="text/css">
+
<STYLE type=text/css>
-
#countdown
+
#center {
-
{
+
LEFT: 50%; POSITION: absolute; TOP: 50%
-
display:none;
+
}
}
-
#visit
+
#DHTMLBOOK {
-
{
+
BACKGROUND: #000; LEFT: -210px; VISIBILITY: hidden; WIDTH: 420px; POSITION: relative; TOP: -160px; HEIGHT: 320px
-
display:none;
+
}
}
-
#demo
+
#TXTBOX {
-
{
+
FONT-SIZE: 0.8em; WIDTH: 410px; COLOR: #aba193; FONT-FAMILY: verdana; POSITION: absolute; TOP: 320px; TEXT-ALIGN: center
-
position:relative;
+
-
top:15px;
+
-
height:200px;
+
-
width:1000px;
+
-
left:0px;
+
-
overflow:hidden;
+
}
}
-
#demo img {
+
.page {
-
top:20px;
+
OVERFLOW: hidden; BORDER-LEFT: #000000 1px solid; WIDTH: 50%; CURSOR: pointer; POSITION: absolute; HEIGHT: 100%
-
height:200px;
+
-
width:300px;
+
}
}
-
#indemo {
+
.right {
-
float: left;
+
BORDER-RIGHT: #000000 1px solid; LEFT: 50%
-
width: 800%;
+
}
}
-
#demo1 {
+
.turn {
-
float: left;
+
BACKGROUND: #000000
}
}
-
#demo2 {
+
.img {
-
padding:0px 3px;
+
WIDTH: 200%; POSITION: absolute; HEIGHT: 100%
-
float: left;
+
}
}
-
#footer-box
+
</STYLE>
-
{
+
 
-
position:absolute;
+
<SCRIPT type=text/javascript><!--
-
top:2000px;
+
-
}
+
-
.team_images img
+
-
{
+
-
height:280px;
+
document.onselectstart = function () { return false; }
 +
 
 +
var nI  = 0;
 +
var kI  = 0;
 +
var run = false;
 +
 
 +
function setOpacity(obj,o) {
 +
if (o<0) o=0; else if (o>100) o = 100;
 +
if (obj.filters)obj.filters.alpha.opacity=o; else obj.style.opacity = o/100;
}
}
-
#preview_images
+
function TPR__(p) {
-
{
+
P1.style.left  = 50-(2.5*p)+"%";
-
position:relative;
+
P1.style.width = (2.5*p)+"%";
-
top:20px;
+
setOpacity(P1i, .5*p*p);
-
background:transparent;
+
if (p == 20) run = false;
-
height:600px;
+
-
left:10px;
+
-
width:980px;
+
}
}
-
#screen {
+
function TPR_(p) {
-
  position: absolute;
+
P2.style.width = 50-(2.5*p)+"%";
-
  left: 0px;
+
setOpacity(P2i, 100-.5*(p*p));
-
  top: 280px;
+
if (p == 20) {
-
  width: 1000px;
+
P2i.src = IMGSRC[kI].src;
-
  height: 400px;
+
setOpacity(P2i, 100);
-
  background: transparent;
+
P2.style.width = "50%";
-
}
+
for(var i=1; i<=20; i++) setTimeout("TPR__("+i+")", i*32);
-
#screen img {
+
}
-
  position: absolute;
+
-
  cursor: pointer;
+
-
  visibility: hidden;
+
-
  width: 200px;
+
-
  height:20px;
+
-
}
+
-
#screen .tvover {
+
-
  border: solid #876;
+
-
  opacity: 1;
+
-
  filter: alpha(opacity=100);
+
-
}
+
-
#screen .tvout {
+
-
  border: solid #fff;
+
-
  opacity: 0.7;
+
-
}
+
-
#bankImages {
+
-
  display: none;
+
-
}
+
-
</style>
+
-
<script type="text/javascript">
+
-
var Library = {};
+
-
Library.ease = function () {
+
-
this.target = 0;
+
-
this.position = 0;
+
-
this.move = function (target, speed)
+
-
{
+
-
  this.position += (target - this.position) * speed;
+
-
}
+
}
}
-
var tv = {
+
function TPR() {
-
O : [],
+
if (!run) {
-
screen : {},
+
run = true;
-
grid : {
+
P01i.src = IMGSRC[kI].src;
-
  size      : 4, 
+
P1.style.width = 0;
-
  borderSize : 2, 
+
kI++;
-
  zoomed    : false
+
if (kI>=nI) kI = 0;
-
},
+
titLe(kI);
-
angle : {
+
P02i.src = IMGSRC[kI].src;
-
  x : new Library.ease(),
+
P1i.src = IMGSRC[kI].src;
-
  y : new Library.ease()
+
for (var i=1; i<=20; i++) setTimeout("TPR_("+i+")", i*32);
-
},
+
} else setTimeout("TPR()", 100);
-
camera : {
+
-
  x    : new Library.ease(),
+
-
  y    : new Library.ease(),
+
-
  zoom : new Library.ease(),
+
-
  focalLength : 750
+
-
},
+
-
init : function ()
+
-
{
+
-
  this.screen.obj = document.getElementById('screen');
+
-
  var img = document.getElementById('bankImages').getElementsByTagName('img');
+
-
  this.screen.obj.onselectstart = function () { return false; }
+
-
  this.screen.obj.ondrag        = function () { return false; }
+
-
  var ni = 0;
+
-
  var n = (tv.grid.size / 2) - .5;
+
-
  for (var y = -n; y <= n; y++)
+
-
  {
+
-
  for (var x = -n; x <= n; x++)
+
-
  {
+
-
    var o = document.createElement('img');
+
-
    var i = img[(ni++) % img.length];
+
-
    o.className = 'tvout';
+
-
    o.src = i.src;
+
-
    tv.screen.obj.appendChild(o);
+
-
    o.point3D = {
+
-
    x  : x,
+
-
    y  : y,
+
-
    z  : new Library.ease()
+
-
    };
+
-
    o.point2D = {};
+
-
    o.ratioImage = 1;
+
-
    tv.O.push(o);
+
-
    o.onmouseover = function ()
+
-
    {
+
-
    if (!tv.grid.zoomed)
+
-
    {
+
-
      if (tv.o)
+
-
      {
+
-
      tv.o.point3D.z.target = 0;
+
-
      tv.o.className = 'tvout';
+
-
      }
+
-
      this.className = 'tvover';
+
-
      this.point3D.z.target = -.5;
+
-
      tv.o = this;
+
-
    }
+
-
    }
+
-
    o.onclick = function ()
+
-
    {
+
-
    if (!tv.grid.zoomed)
+
-
    {
+
-
      tv.camera.x.target = this.point3D.x;
+
-
      tv.camera.y.target = this.point3D.y;
+
-
      tv.camera.zoom.target = tv.screen.w * 1.25;
+
-
      tv.grid.zoomed = this;
+
-
    } else {
+
-
      if (this == tv.grid.zoomed){
+
-
      tv.camera.x.target = 0;
+
-
      tv.camera.y.target = 0;
+
-
      tv.camera.zoom.target = tv.screen.w / (tv.grid.size + .1);
+
-
      tv.grid.zoomed = false;
+
-
      }
+
-
    }
+
-
    }
+
-
    o.calc = function ()
+
-
    {
+
-
    this.point3D.z.move(this.point3D.z.target, .5);
+
-
    var x = (this.point3D.x - tv.camera.x.position) * tv.camera.zoom.position;
+
-
    var y = (this.point3D.y - tv.camera.y.position) * tv.camera.zoom.position;
+
-
    var z = this.point3D.z.position * tv.camera.zoom.position;
+
-
    var xy = tv.angle.cx * y  - tv.angle.sx * z;
+
-
    var xz = tv.angle.sx * y  + tv.angle.cx * z;
+
-
    var yz = tv.angle.cy * xz - tv.angle.sy * x;
+
-
    var yx = tv.angle.sy * xz + tv.angle.cy * x;
+
-
    this.point2D.scale = tv.camera.focalLength / (tv.camera.focalLength + yz);
+
-
    this.point2D.x = yx * this.point2D.scale;
+
-
    this.point2D.y = xy * this.point2D.scale;
+
-
    this.point2D.w = Math.round(
+
-
                        Math.max(
+
-
                          0,
+
-
                          this.point2D.scale * tv.camera.zoom.position * .8
+
-
                        )
+
-
                      );
+
-
    if (this.ratioImage > 1)
+
-
      this.point2D.h = Math.round(this.point2D.w / this.ratioImage);
+
-
    else
+
-
    {
+
-
      this.point2D.h = this.point2D.w;
+
-
      this.point2D.w = Math.round(this.point2D.h * this.ratioImage);
+
-
    }
+
-
    }
+
-
    o.draw = function ()
+
-
    {
+
-
    if (this.complete)
+
-
    {
+
-
      if (!this.loaded)
+
-
      {
+
-
      if (!this.img)
+
-
      {
+
-
        this.img = new Image();
+
-
        this.img.src = this.src;
+
-
      }
+
-
      if (this.img.complete)
+
-
      {
+
-
        this.style.visibility = 'visible';
+
-
        this.ratioImage = this.img.width / this.img.height;
+
-
        this.loaded = true;
+
-
        this.img = false;
+
-
      }
+
-
      }
+
-
      this.style.left = Math.round(
+
-
                          this.point2D.x * this.point2D.scale +
+
-
                          tv.screen.w - this.point2D.w * .5
+
-
                        ) + 'px';
+
-
      this.style.top = Math.round(
+
-
                          this.point2D.y * this.point2D.scale +
+
-
                          tv.screen.h - this.point2D.h * .5
+
-
                        ) + 'px';
+
-
      this.style.width  = this.point2D.w + 'px';
+
-
      this.style.height = this.point2D.h + 'px';
+
-
      this.style.borderWidth = Math.round(
+
-
                                Math.max(
+
-
                                  this.point2D.w,
+
-
                                  this.point2D.h
+
-
                                ) * tv.grid.borderSize * .01
+
-
                              ) + 'px';
+
-
      this.style.zIndex = Math.floor(this.point2D.scale * 100);
+
-
    }
+
-
    }
+
-
  }
+
-
  }
+
-
  tv.resize();
+
-
  mouse.y = tv.screen.y + tv.screen.h;
+
-
  mouse.x = tv.screen.x + tv.screen.w;
+
-
  tv.run();
+
-
},
+
-
resize : function ()
+
-
{
+
-
  var o = tv.screen.obj;
+
-
  tv.screen.w = o.offsetWidth / 2;
+
-
  tv.screen.h = o.offsetHeight / 2;
+
-
  tv.camera.zoom.target = tv.screen.w / (tv.grid.size + .1);
+
-
  for (tv.screen.x = 0, tv.screen.y = 0; o != null; o = o.offsetParent)
+
-
  {
+
-
  tv.screen.x += o.offsetLeft;
+
-
  tv.screen.y += o.offsetTop;
+
-
  }
+
-
},
+
-
run : function ()
+
-
{
+
-
  tv.angle.x.move(-(mouse.y - tv.screen.h - tv.screen.y) * .0025, .1);
+
-
  tv.angle.y.move( (mouse.x - tv.screen.w - tv.screen.x) * .0025, .1);
+
-
  tv.camera.x.move(tv.camera.x.target, tv.grid.zoomed ? .25 : .025);
+
-
  tv.camera.y.move(tv.camera.y.target, tv.grid.zoomed ? .25 : .025);
+
-
  tv.camera.zoom.move(tv.camera.zoom.target, .05);
+
-
  tv.angle.cx = Math.cos(tv.angle.x.position);
+
-
  tv.angle.sx = Math.sin(tv.angle.x.position);
+
-
  tv.angle.cy = Math.cos(tv.angle.y.position);
+
-
  tv.angle.sy = Math.sin(tv.angle.y.position);
+
-
  for (var i = 0, o; o = tv.O[i]; i++)
+
-
  {
+
-
  o.calc();
+
-
  o.draw();
+
-
  }
+
-
  setTimeout(tv.run, 32);
+
-
}
+
}
}
-
var mouse = {
+
 
-
x : 0,
+
function TPL__(p) {
-
y : 0
+
P2.style.width = (2.5*p)+"%";
 +
setOpacity(P2i, .5*p*p);
 +
if (p == 20) run = false;
}
}
-
document.onmousemove = function(e)
+
function TPL_(p) {
-
{
+
P1.style.left = (2.5*p)+"%";
-
  if (window.event) e = window.event;
+
P1.style.width = 40+(10-2.5*p)+"%";
-
mouse.x = e.clientX;
+
setOpacity(P1i, 100-.5*(p*p));
-
mouse.y = e.clientY;
+
if (p == 20) {
-
return false;
+
P1i.src = IMGSRC[kI].src;
 +
setOpacity(P1i, 100);
 +
P1.style.left  = 0;
 +
P1.style.width = "50%";
 +
for(var i=1; i<=20; i++) setTimeout("TPL__("+i+")", i*32);
 +
}
}
}
-
</script>
+
function TPL() {
-
</head>
+
if (!run) {
-
<body>
+
run = true;
-
<div id="content1">
+
P02i.src = IMGSRC[kI].src;
-
<div id="demo">
+
P2.style.width = 0;
-
<div id="indemo">
+
kI--;
-
<div id="demo1">
+
if (kI < 0) kI = nI-1;
-
<a ><img src="/wiki/images/e/e6/Whu-1.jpg" border="1" /></a>
+
titLe(kI);
-
<a ><img src="/wiki/images/f/f1/Whu-4-2.jpg" border="1" /></a>
+
P01i.src = IMGSRC[kI].src;
-
<a ><img src="/wiki/images/c/c4/Whu-8.jpg" border="1" /></a>
+
P2i.src = IMGSRC[kI].src;
-
<a ><img src="/wiki/images/f/f6/Whu-10.jpg" border="1" /></a>
+
for(var i=1; i<=20; i++) setTimeout("TPL_("+i+")", i*32);
-
<a ><img src="/wiki/images/6/69/Whu-13.jpg" border="1" /></a>
+
} else setTimeout("TPL()", 100);
-
<a ><img src="/wiki/images/e/e1/Whu-18.jpg" border="1" /></a>
+
-
<a><img src="/wiki/images/4/42/Whu-32.jpg" border="1" /></a>
+
-
<a ><img src="/wiki/images/f/fc/Whu-43.jpg" border="1" /></a>
+
-
<a ><img src="/wiki/images/a/a8/Whu-61.jpg" border="1" /></a>
+
-
<a><img src="/wiki/images/5/57/Whu-47.jpg" border="1" /></a>
+
-
</div>
+
-
<div id="demo2"></div>
+
-
<script>
+
-
var speed=20;  
+
-
var tab=document.getElementById("demo");
+
-
var tab1=document.getElementById("demo1");
+
-
var tab2=document.getElementById("demo2");
+
-
tab2.innerHTML=tab1.innerHTML;
+
-
function Marquee(){
+
-
if(tab.scrollLeft<=0)
+
-
tab.scrollLeft+=tab2.offsetWidth
+
-
else{
+
-
tab.scrollLeft--;
+
}
}
 +
function titLe(p) {
 +
document.getElementById("TXTBOX").innerHTML = IMGSRC[p].alt;
}
}
-
var MyMar=setInterval(Marquee,speed);
+
onload = function() {
-
tab.onmouseover=function() {clearInterval(MyMar)};
+
IMGSRC  = document.getElementById("imgsrc").getElementsByTagName("img");
-
tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)};
+
DB      = document.getElementById("DHTMLBOOK");
-
 
+
P01    = DB.getElementsByTagName("span")[0];
-
</script>
+
P01i    = P01.getElementsByTagName("img")[0];
-
</div>
+
P02    = DB.getElementsByTagName("span")[1];
-
</div>
+
P02i    = P02.getElementsByTagName("img")[0];
-
 
+
P1      = DB.getElementsByTagName("span")[2];
-
 
+
P1i    = P1.getElementsByTagName("img")[0];
-
<div id="screen"></div>
+
P2      = DB.getElementsByTagName("span")[3];
-
<div id="bankImages">
+
P2i    = P2.getElementsByTagName("img")[0];
-
<img src="https://static.igem.org/mediawiki/2011/e/e6/Whu-1.jpg">
+
nI      = IMGSRC.length;
-
<img src="https://static.igem.org/mediawiki/2011/f/f1/Whu-4-2.jpg">
+
P1i.src = IMGSRC[kI].src;
-
<img src="https://static.igem.org/mediawiki/2011/c/c4/Whu-8.jpg">
+
P2i.src = IMGSRC[kI].src;
-
<img src="https://static.igem.org/mediawiki/2011/f/f6/Whu-10.jpg">
+
titLe(kI);
-
<img src="https://static.igem.org/mediawiki/2011/6/69/Whu-13.jpg">
+
DB.style.visibility = "visible";
-
<img src="https://static.igem.org/mediawiki/2011/e/e1/Whu-18.jpg">
+
}
-
<img src="https://static.igem.org/mediawiki/2011/4/42/Whu-32.jpg">
+
//-->
-
<img src="https://static.igem.org/mediawiki/2011/f/fc/Whu-43.jpg">
+
</SCRIPT>
-
<img src="https://static.igem.org/mediawiki/2011/a/a8/Whu-61.jpg">
+
-
<img src="https://static.igem.org/mediawiki/2011/5/57/Whu-47.jpg">
+
-
</div>
+
-
<script type="text/javascript">
+
-
onresize = tv.resize;
+
-
tv.init();
+
-
</script>
+
-
</div>
+
-
 
+
-
 
+
-
 
+
-
</body>
+
<META content="MSHTML 6.00.6000.16809" name=GENERATOR></HEAD>
 +
<BODY>
-
</html>
+
<DIV id=center>
-
{{WHUcss}}
+
<DIV id=DHTMLBOOK><SPAN class=page onMouseDown="return false;" ondblclick=TPL(); onclick=TPL();><IMG class=img></SPAN>
 +
<SPAN class="page right" onmousedown="return false;" ondblclick=TPR(); onclick=TPR();><IMG class=img style="LEFT: -100%"></SPAN>
 +
<SPAN class="page turn" onMouseDown="return false;" ondblclick=TPL(); onclick=TPL();><IMG class=img style="FILTER: alpha(); opacity: 1"></SPAN>
 +
<SPAN class="page turn right" onmousedown="return false;" ondblclick=TPR(); onclick=TPR();><IMG class=img style="FILTER: alpha(); LEFT: -100%; opacity: 1"></SPAN>
 +
<DIV id=TXTBOX></DIV></DIV></DIV>
 +
<DIV id=imgsrc style="VISIBILITY: hidden">
 +
<IMG alt="In the early morning he departed." src="https://static.igem.org/mediawiki/2011/e/e6/Whu-1.jpg">
 +
<IMG alt="Believing she had dreamed of the roar of his bike," src="https://static.igem.org/mediawiki/2011/e/e6/Whu-1.jpg">
 +
<IMG alt="she woke up to the sunshine in her eyelids." src="https://static.igem.org/mediawiki/2011/e/e6/Whu-1.jpg">
 +
</DIV>
 +
</BODY></HTML>

Revision as of 17:51, 2 October 2011

JS实现图片翻书效果-懒人图库