|
|
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> |