Team:XMU-China/photogallery
From 2012.igem.org
(Difference between revisions)
Line 1: | Line 1: | ||
- | <html | + | <!doctype html> |
+ | <html> | ||
<head> | <head> | ||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
- | < | + | <style> |
- | + | html {background:#000} | |
- | + | body, ul {margin:0;padding:0} | |
- | + | li {list-style:none} | |
- | color: # | + | img {border:none;display:block} |
- | + | .slide-wp { | |
- | + | width: 900px; | |
- | position: | + | height: 300px; |
- | left: | + | overflow: hidden; |
- | + | position: absolute; | |
- | + | left: 25px; | |
- | + | top: 25px atuo; | |
+ | } | ||
+ | .nav-wp { | ||
+ | position: absolute; | ||
+ | top: 190px; | ||
+ | margin-top: 170px; | ||
+ | left: 462px; | ||
+ | margin-left: -100px; | ||
+ | border-radius: 4px; | ||
+ | -moz-border-radius: 4px; | ||
+ | -webkit-border-radius: 4px; | ||
+ | padding: 0 20px 6px 10px; | ||
+ | _padding: 0 20px 2px 10px; | ||
+ | background-color: #0099cc; | ||
+ | } | ||
+ | .nav li { | ||
+ | float: left; | ||
+ | margin-left: 10px; | ||
+ | font-size: 20px; | ||
+ | font-weight: bold; | ||
+ | font-family: tahoma; | ||
+ | color: #004f7c; | ||
+ | cursor: pointer; | ||
+ | height: 22px; | ||
+ | } | ||
+ | .nav li.cur{ | ||
+ | color: #fc49b6 | ||
+ | } | ||
+ | .next { | ||
+ | position:absolute; | ||
+ | top: 0; | ||
+ | left: 160px; | ||
+ | padding: 4px 8px; | ||
+ | color: #fff; | ||
+ | height: 20px; | ||
+ | border-radius: 4px; | ||
+ | -moz-border-radius: 4px; | ||
+ | -webkit-border-radius: 4px; | ||
+ | cursor: pointer; | ||
+ | background-color: #0099cc; | ||
+ | font-weight: normal; | ||
} | } | ||
</style> | </style> | ||
</head> | </head> | ||
- | |||
<body> | <body> | ||
- | < | + | <h2 style="color:#fff">对于使用IE6的同学看到的斑点,我只能表示很无奈。。。</h2> |
- | + | <div id="slider" class="slide-wp"> | |
- | + | <ul> | |
- | < | + | <li><a href="http://www.cnblogs.com/hongru/" target="_blank"><img src="https://static.igem.org/mediawiki/2012/a/a0/Xmu_photo_001.jpg" width="900" height="300"></a></li> |
+ | <li><a href="http://www.cnblogs.com/hongru/" target="_blank"><img src="https://static.igem.org/mediawiki/2012/3/3e/IMG_0644.jpg" width="900" height="300"></a></li> | ||
+ | <li><a href="http://www.cnblogs.com/hongru/" target="_blank"><img src="https://static.igem.org/mediawiki/2012/c/c6/IMG_0675.jpg" width="900" height="300"></a></li> | ||
+ | <li><a href="http://www.cnblogs.com/hongru/" target="_blank"><img src="https://static.igem.org/mediawiki/2012/c/c2/IMG_0680.jpg" width="900" height="300"></a></li> | ||
+ | <li><a href="http://www.cnblogs.com/hongru/" target="_blank"><img src="https://static.igem.org/mediawiki/2012/4/49/IMG_0699.jpg" width="900" height="300"></a></li> | ||
+ | </ul> | ||
+ | </div> | ||
+ | <div class="nav-wp"> | ||
+ | <ul id="nav" class="nav"> | ||
+ | <li onclick="mySlider.pos(0)">●</li> | ||
+ | <li onclick="mySlider.pos(1)">●</li> | ||
+ | <li onclick="mySlider.pos(2)">●</li> | ||
+ | <li onclick="mySlider.pos(3)">●</li> | ||
+ | <li onclick="mySlider.pos(4)">●</li> | ||
+ | </ul> | ||
+ | <a class="next" onclick="mySlider.move()">next</a> | ||
+ | </div> | ||
+ | <script type="text/javascript"> | ||
+ | var HR = { | ||
+ | $ : function(i) {return document.getElementById(i)}, | ||
+ | $$ : function(c, p) {return p.getElementsByTagName(c)}, | ||
+ | ce : function(i, t) { | ||
+ | var o = document.createElement(i); | ||
+ | t.appendChild(o); | ||
+ | return o; | ||
+ | } | ||
+ | }; | ||
+ | HR.slider3D = function () { | ||
+ | var init = function (o) { | ||
+ | this.o = o; | ||
+ | var wp = HR.$(o.id), ul = HR.$$('ul', wp)[0], li = this.li = HR.$$('li', ul); | ||
+ | this.l = li.length; | ||
+ | this.w = wp.offsetWidth; | ||
+ | this.h = wp.offsetHeight; | ||
+ | this.at = o.auto? o.auto : 4; | ||
+ | var con = this.con = HR.ce('div', wp); | ||
+ | con.style.cssText = 'position:absolute;left:0;top:0;width:'+this.w+'px;height:'+this.h+'px'; | ||
+ | ul.style['display'] = 'none'; | ||
+ | this.a1 = HR.ce('a', con); | ||
+ | this.a1.style.cssText = 'position:absolute;left:0;top:0;overflow:hidden'; | ||
+ | this.a2 = HR.ce('a', con); | ||
+ | this.a2.style.cssText = 'position:absolute;top:0;right:0;overflow:hidden'; | ||
+ | this.a1.innerHTML = this.a2.innerHTML = '<img alt="" />'; | ||
+ | this.img = HR.$$('img', ul); | ||
+ | this.s = o.maskSize ? o.maskSize : 5; | ||
+ | this.mask11 = HR.ce('span', this.a1); | ||
+ | this.mask12 = HR.ce('span', this.a1); | ||
+ | this.mask21 = HR.ce('span', this.a2); | ||
+ | this.mask22 = HR.ce('span', this.a2); | ||
- | + | this.pos(0); | |
- | + | } | |
- | + | init.prototype = { | |
- | + | pos : function (i) { | |
- | + | clearInterval(this.li[i].a); clearInterval(this.au); this.au = 0; this.cur = i; | |
- | + | var navli = HR.$$('li', HR.$(this.o.navId)); | |
- | + | for (var j=0; j<navli.length; j++) { | |
- | + | navli[j].className = i == j ? 'cur' : ''; | |
- | + | } | |
- | + | var img1 = HR.$$('img', this.a1)[0], img2 = HR.$$('img', this.a2)[0], _this = this; | |
- | + | img1.src = i==0 ? this.img[this.l-1].src : this.img[i-1].src; | |
- | + | img1.width = this.w; | |
- | + | img2.src = this.img[i].src; | |
- | + | img2.width = 0; | |
- | + | img1.height = img2.height = this.h; | |
- | + | this.mask11.style.cssText = 'position:absolute;left:0;top:0;font-size:0;overflow:hidden;width:0;height:0;border-color:black transparent transparent black;border-style:solid dashed dashed solid;border-width:0 '+this.w/2+'px'; | |
- | + | this.mask12.style.cssText = 'position:absolute;left:0;bottom:0;font-size:0;overflow:hidden;width:0;height:0;border-color:transparent transparent black black;border-style:dashed dashed solid solid;border-width:0 '+this.w/2+'px'; | |
- | + | this.mask21.style.cssText = 'position:absolute;right:0;top:0;font-size:0;overflow:hidden;width:0;height:0;border-color:black black transparent transparent;border-style:solid solid dashed dashed;border-width:0px'; | |
- | + | this.mask22.style.cssText = 'position:absolute;right:0;bottom:0;font-size:0;overflow:hidden;width:0;height:0;border-color:transparent black black transparent;border-style:dashed solid solid dashed;border-width:0px'; | |
- | + | this.li[i].a = setInterval(function(){_this.anim(i)}, 20); | |
- | + | }, | |
- | function | + | anim : function (i) { |
- | { | + | var w1 = HR.$$('img', this.a1)[0].width, w2 = HR.$$('img', this.a2)[0].width; |
- | + | if (w2 == this.w) { | |
- | { | + | clearInterval(this.li[i].a); |
- | + | HR.$$('img', this.a1)[0].width = 0; | |
- | + | HR.$$('img', this.a2)[0].width = this.w; | |
- | + | this.mask11.style.borderLeftWidth = this.mask11.style.borderRightWidth = this.mask12.style.borderLeftWidth = this.mask12.style.borderRightWidth = '0px'; | |
- | + | this.mask11.style.borderTopWidth = this.mask11.style.borderBottomWidth = this.mask12.style.borderTopWidth = this.mask12.style.borderBottomWidth = this.h/this.s + 'px'; | |
- | + | this.mask21.style.borderLeftWidth = this.mask21.style.borderRightWidth = this.mask22.style.borderLeftWidth = this.mask22.style.borderRightWidth = this.w/2 + 'px'; | |
- | + | this.mask21.style.borderTopWidth = this.mask21.style.borderBottomWidth = this.mask22.style.borderTopWidth = this.mask22.style.borderBottomWidth = '0px'; | |
- | + | }else { | |
- | + | HR.$$('img', this.a1)[0].width -= Math.ceil((this.w-w2)*.13); | |
- | + | HR.$$('img', this.a2)[0].width += Math.ceil((this.w-w2)*.13); | |
- | + | this.mask11.style.borderLeftWidth = this.mask11.style.borderRightWidth = this.mask12.style.borderLeftWidth = this.mask12.style.borderRightWidth = HR.$$('img', this.a1)[0].width/2 + 'px'; | |
- | + | this.mask11.style.borderTopWidth = this.mask11.style.borderBottomWidth = this.mask12.style.borderTopWidth = this.mask12.style.borderBottomWidth = HR.$$('img', this.a2)[0].width*this.h/(this.s*this.w) + 'px'; | |
- | + | this.mask21.style.borderLeftWidth = this.mask21.style.borderRightWidth = this.mask22.style.borderLeftWidth = this.mask22.style.borderRightWidth = HR.$$('img', this.a2)[0].width/2 + 'px'; | |
- | + | this.mask21.style.borderTopWidth = this.mask21.style.borderBottomWidth = this.mask22.style.borderTopWidth = this.mask22.style.borderBottomWidth = this.h/this.s - HR.$$('img', this.a2)[0].width*this.h/(this.s*this.w) + 'px'; | |
- | + | if (!this.au) this.auto(); | |
- | + | } | |
- | + | }, | |
- | + | auto : function () { | |
- | + | var _this = this; | |
- | + | this.au = setInterval(function(){_this.move()}, this.at*1000); | |
- | + | }, | |
- | + | move : function () { | |
- | + | var n = this.cur==this.l-1 ? 0 : this.cur+1; | |
- | + | this.pos(n); | |
- | + | } | |
- | + | } | |
- | + | return init; | |
- | + | }(); | |
- | + | var mySlider = new HR.slider3D({ | |
- | + | id: 'slider', | |
- | + | maskSize: 6, | |
- | + | navId: 'nav', | |
- | + | auto: 4 | |
- | </body> | + | })</script></body> |
</html> | </html> |
Revision as of 03:37, 23 September 2012
<!doctype html>