CSS로 만든 - 3D 입체 갤러리
CSS 3D 갤러리 소스
하단의 태그 중 이미지만 변경하시면 됩니다.
이미지를 클릭하시면 '클로즈업'되면서 지나갑니다.
< 예제 >
----------------- 소스 -------------------
<html>
<head>
<title>NestStep's Song' pics</title>
<style type="text/css">
#canvas {
position:absolute;
left: 0%;
top: 0%;
width: 100%;
height: 100%;
background: #000;
overflow: hidden;
}
#canvas img {
position: absolute;
background: #666;
overflow: hidden;
cursor: pointer;
left: 100%;
border-color: #000;
border-style: solid;
border-width: 1px;
}
#canvas span {
position: absolute;
color: #9C9;
font-family: 'courier new', typewriter, matrix, monospace;
font-size: 0px;
white-space: nowrap;
left: -1000px;
background:#010;
filter: alpha(opacity=90);
opacity:0.9;
}
</style>
<script type="text/javascript">
var O = [];
var cont = 0;
var N = 0;
var S = 0;
var img, spa;
var s = {xm:0, ym:0, nx:0, ny:0, nw:0, nh:0, cx:0, cy:0, zoom:1};
var c = {x:0, y:0, z:-40000, xt:0, yt:0, zt:0};
//////////////////////////////////////////////////////////////////////////////
function resize() {
with(document.getElementById("canvas")){
s.nx = offsetLeft;
s.ny = offsetTop;
s.nw = offsetWidth;
s.nh = offsetHeight;
s.zoom = s.nh / 700;
}
}
onresize = resize;
document.onmousemove = function(e){
if(window.event) e=window.event;
s.xm = (e.x || e.clientX) - s.nx - s.nw * .5;
s.ym = (e.y || e.clientY) - s.ny - s.nh * .5;
}
function CObj(n){
this.n = n;
this.x = s.zoom * Math.random() * s.nw * 2 - s.nw;
this.y = s.zoom * Math.random() * s.nh * 2 - s.nh;
this.z = Math.round(n * (10000 / N));
this.w = img[n].width;
this.h = img[n].height;
this.oxt = spa[n];
this.txt = spa[n].innerHTML;
this.oxt.innerHTML = "";
this.obj = img[n];
this.obj.parent = this;
this.obj.onclick = new Function("this.parent.click();");
this.obj.ondrag = new Function("return false;");
this.oxt.style.zIndex = this.obj.style.zIndex = Math.round(1000000 - this.z);
this.F = false;
this.CF = 100;
this.anim = function(){
with(this){
var f = 700 + z - c.z;
if (f > 0) {
var d = 1000 / f;
var X = s.nw * .5 + ((x - c.x - s.cx) * d);
var Y = s.nh * .5 + ((y - c.y - s.cy) * d);
var W = d * w * s.zoom;
var H = d * h * s.zoom;
with(obj.style){
left = Math.round(X - W * .5)+"px";
top = Math.round(Y - H * .5)+"px";
width = Math.round(W)+"px";
height = Math.round(H)+"px";
}
with(oxt.style){
visibility = (CF-- > 0 && Math.random() > .9)?"hidden":"visible";
left = Math.round(X - W * .5)+"px";
top = Math.round(Y + H * .5)+"px";
if((c.zt - c.z) < 20){
if(!F){
F = true;
CF = Math.random() * 200;
fontSize = 1 + Math.round(d * 20 * s.zoom)+"px";
var T = "";
var tn = txt.length;
for(var i=0; i<tn; i++){
T+=txt.charAt(i);
setTimeout('O['+n+'].oxt.innerHTML = "'+(T+"_")+'";', Math.round(f/5)+16*i);
}
}
} else F=false, oxt.innerHTML="";
}
} else {
x = s.zoom * Math.random() * s.nw * 2 - s.nw;
y = s.zoom * Math.random() * s.nh * 2 - s.nh;
z += 10000;
oxt.style.zIndex = obj.style.zIndex = Math.round(1000000 - z);
}
}
}
this.click = function(){
with(this){
if(S!=this){
c.xt = x;
c.yt = y;
c.zt = z;
S = this;
} else {
S = 0;
c.zt += 1600;
}
}
}
}
function run(){
s.cx += (s.xm - s.cx) / 10;
s.cy += (s.ym - s.cy) / 10;
c.x += (c.xt - c.x) / 20;
c.y += (c.yt - c.y) / 20;
c.z += (c.zt - c.z) / 20;
for(var i=0; i<N; i++) O[i].anim();
setTimeout("run();", 16);
}
onload = function() {
resize();
s.cx = s.nw / 2;
s.cy = s.nh / 2;
cont = document.getElementById("canvas");
img = document.getElementById("canvas").getElementsByTagName("img");
spa = document.getElementById("canvas").getElementsByTagName("span");
N = img.length;
for(var i=0; i<N; i++) O[i] = new CObj(i);
run();
O[0].click();
}
</script>
</head>
<body>
<div id="canvas">
<img src="http://cbingoimage.naver.com/data2/bingo_12/imgbingo_26/kmy0nagayo/24493/kmy0nagayo_10.jpg"><span>hi~~~~~~</span>
<img src="http://cafe.naver.com/ViewImage.nhn?img=http://cafefiles.naver.net/data21/2007/3/18/141/desting7_17.jpg"><span>Welcome to www.uplusweb.co.kr</span>
<img src="http://cbingoimage.naver.com/data3/bingo_82/imgbingo_29/mony87/29907/mony87_87.jpg"><span>Oh~~~~</span>
<img src="http://cbingoimage.naver.com/data3/bingo_5/imgbingo_45/tok888/24617/tok888_118.jpg"><span>Welcome</span>
<img src="http://cbingoimage.naver.com/data/bingo_92/imgbingo_92/kinisky/29847/kinisky_37.jpg"><span>llll</span>
<img src="http://cbingoimage.naver.com/data3/bingo_98/imgbingo_84/windyemail/30864/windyemail_13.jpg"><span>ttt</span>
<img src="http://cbingoimage.naver.com/data3/bingo_5/imgbingo_99/hanb5/29359/hanb5_12.jpg"><span>ttt</span>
<img src="http://cbingoimage.naver.com/data3/bingo_56/imgbingo_91/seulkee0926/37699/seulkee0926_27.jpg"><span>jjj</span>
<img src="http://cbingoimage.naver.com/data3/bingo_40/imgbingo_79/sashin60/37578/sashin60_4.jpg"><span>qqqqq</span>
<img src="http://cafe.naver.com/ViewImage.nhn?img=http://cafefiles.naver.net/data24/2006/5/30/192/%BC%DB%C7%FD%B1%B36.jpg"><span>aaaa</span>
<img src="http://cbingoimage.naver.com/data2/bingo_73/imgbingo_23/jomatt87/16032/jomatt87_4.jpg"><span>sss</span>
<img src="http://cafe.naver.com/ViewImage.nhn?img=http://cafefiles.naver.net/data8/2005/2/28/25/song.jpg"><span>ssssssssssss</span>
<img src="http://cafe.naver.com/ViewImage.nhn?img=http://cafefiles.naver.net/data7/2005/2/28/61/n2o_1412_59770_1.jpg"><span>ssssssssssss</span>
<img src="http://cafe.naver.com/ViewImage.nhn?img=http://cafefiles.naver.net/data8/2005/2/28/296/haegyo.jpg"><span>ssssssssssss</span>
<img src="http://cafe.naver.com/ViewImage.nhn?img=http://cafefiles.naver.net/data8/2005/2/28/28/17.jpg"><span>ssssssssssss</span>
<img src="http://cafe.naver.com/ViewImage.nhn?img=http://cafefiles.naver.net/data7/2005/2/28/297/41808-jinistars.jpg"><span>ssssssssssss</span>
</div>
</body>
</html>
------------ 소스 끝 -----------------------
댓글 2개
게시글 목록
| 번호 | 제목 |
|---|---|
| 27980 | |
| 7164 | |
| 31729 | |
| 31726 | |
| 31725 | |
| 31720 | |
| 31711 | |
| 7159 | |
| 27974 | |
| 19734 | |
| 19730 | |
| 19729 |
PHP
[알고리즘] 배열 역순
|
| 27969 | |
| 7142 | |
| 19728 |
jQuery
remove()를 이용하여 엘리먼트 삭제하기
|
| 19725 | |
| 7130 | |
| 19722 |
jQuery
동일 엘리먼트 순번 알아내기
2
|
| 19719 | |
| 7124 | |
| 19718 | |
| 19717 | |
| 19716 |
jQuery
position() 메서드 객체에 대한 좌표값
|
| 19715 | |
| 7122 | |
| 30959 | |
| 19714 | |
| 31710 |
jQuery Mobile
jQuery Mobile 강좌 19. Select Menus
|
| 31709 |
jQuery Mobile
jQuery Mobile 강좌 18. Text Inputs
|
| 19713 | |
| 7117 | |
| 19712 | |
| 7111 | |
| 31708 |
jQuery Mobile
jQuery Mobile 강좌 17. Form Basic
|
| 31707 |
jQuery Mobile
jQuery Mobile 강좌 16. Filters
|
| 19710 | |
| 31706 |
jQuery Mobile
jQuery Mobile 강좌 15. List Content
|
| 31705 |
jQuery Mobile
jQuery Mobile 강좌 14. List Views
|
| 31704 |
jQuery Mobile
jQuery Mobile 강좌 13. Layout Grids
|
| 19709 | |
| 19707 | |
| 31703 |
jQuery Mobile
jQuery Mobile 강좌 12. Tables
|
| 19706 |
jQuery
class가 있는지 없는지 체크하기
|
| 31702 |
jQuery Mobile
jQuery Mobile 강좌 11. Collapsibles
|
| 19705 |
PHP
배열에서 중복 값 없애기
|
| 31701 |
jQuery Mobile
jQuery Mobile 강좌 10. Panels
|
| 19704 | |
| 31700 |
jQuery Mobile
jQuery Mobile 강좌 9. Navigation Bars
|
| 31699 |
jQuery Mobile
jQuery Mobile 강좌 8. Toolbars
|
| 31698 |
jQuery Mobile
jQuery Mobile 강좌 7. Popups
|
| 7107 | |
| 19703 |
JavaScript
str_pad 자릿수만큼 특정문자로 채우기
|
| 31697 |
jQuery Mobile
jQuery Mobile 강좌 6. Icons
|
| 31696 |
jQuery Mobile
jQuery Mobile 강좌 5. Buttons
|
| 19702 | |
| 19701 | |
| 31695 |
jQuery Mobile
jQuery Mobile 강좌 4. Transitions
|
| 27965 | |
| 31694 |
jQuery Mobile
jQuery Mobile 강좌 3. Pages
|
| 19700 | |
| 31693 |
jQuery Mobile
jQuery Mobile 강좌 2. Install
|
| 19699 | |
| 31692 |
jQuery Mobile
jQuery Mobile 강좌 1. Introduction
|
| 31691 |
jQuery Mobile
jQuery Mobile 강좌 0.home
|
| 19698 | |
| 19697 | |
| 19696 |
jQuery
마우스 오버 위치에 따라 툴팁 생성 및 자동 이동
|
| 19694 | |
| 19693 |
jQuery
제이쿼리 동적으로 생성된 객체에 이벤트 생성하기
|
| 19692 | |
| 19691 | |
| 19690 |
JavaScript
shuffle 배열섞기
|
| 19689 |
jQuery
제이쿼리 모음 사이트
|
| 19688 |
PHP
1원팁] IP 대역 비교
|
| 19687 | |
| 7105 | |
| 30955 | |
| 7100 | |
| 19681 |
PHP
input 쉽게 관리하기
5
|
| 7097 | |
| 19678 |
JavaScript
서버시간을 사용한 전자시계
2
|
| 7089 | |
| 7086 | |
| 7084 | |
| 7082 | |
| 19677 | |
| 30953 | |
| 7080 | |
| 7077 | |
| 7071 | |
| 7070 | |
| 7066 | |
| 19676 |
JavaScript
구글 웹사이트 번역기를 내 사이트에 달기
|
| 19674 | |
| 27961 | |
| 7063 | |
| 7061 | |
| 19669 | |
| 7060 | |
| 20842 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기