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개
게시글 목록
| 번호 | 제목 |
|---|---|
| 26573 | |
| 7309 | |
| 19780 | |
| 7306 | |
| 28025 | |
| 28020 | |
| 28010 | |
| 7304 | |
| 7302 | |
| 7295 | |
| 7292 | |
| 7287 | |
| 19779 | |
| 7284 | |
| 7279 | |
| 7278 | |
| 28009 | |
| 31753 |
그누보드5
그누보드5 강좌 - 갤러리스킨 만들기
|
| 31752 | |
| 7274 | |
| 31751 | |
| 31750 |
그누보드5
그누보드5 강좌 - 네비게이션적용하기
|
| 31749 |
그누보드5
그누보드5 강좌 - 네비게이션적용하기
|
| 31748 |
그누보드5
그누보드5 강좌 - 스킨적용하기
|
| 30979 | |
| 31747 |
그누보드5
그누보드5 강좌 - 홈페이지만들기 실전#2
|
| 28004 | |
| 31745 |
그누보드5
그누보드5 강좌 - 홈페이지만들기 실전
1
|
| 7267 | |
| 7261 | |
| 31742 |
그누보드5
그누보드강좌 샘플
2
|
| 7256 | |
| 19776 |
node.js
mysql 연결 방법 2가지
2
|
| 24650 | |
| 7252 | |
| 7248 | |
| 28002 | |
| 19772 |
JavaScript
한글로 된 숫자를 아라비아 숫자로 변환
3
|
| 7245 | |
| 19770 | |
| 19769 | |
| 30975 | |
| 7243 | |
| 7236 | |
| 28001 | |
| 27994 | |
| 7233 | |
| 7232 | |
| 19768 |
jQuery
제이쿼리로 이미지 회전 시키기
|
| 19765 |
jQuery
구형 익스에서 HTML5 적용시키기
2
|
| 19763 |
jQuery
특정 레이어 높이 100% 잡는 법
1
|
| 30974 | |
| 7224 | |
| 19761 |
jQuery
모바일 해상도에 맞게 이미지 출력
1
|
| 24645 | |
| 19760 | |
| 19758 |
jQuery
제이쿼리를 이용하여 동영상 재생
1
|
| 19757 | |
| 19754 | |
| 19753 |
jQuery
브라우저 상단에 고정 시키는 제이쿼리 소스
|
| 19752 | |
| 19751 |
PHP
php 에러 출력하기
|
| 7223 | |
| 7216 | |
| 7213 | |
| 31741 |
AngularJS
AngularJS 강좌 9. HTML DOM
|
| 19750 |
jQuery
1원팁] css에 hover효과를 제이쿼리로
|
| 19749 |
JavaScript
1원팁]알고 있음 좋은 자바스크립트 함수
|
| 19748 |
jQuery
제이쿼리 기본 효과 메소드
|
| 31740 |
AngularJS
AngularJS 강좌 8. SQL
|
| 31739 |
AngularJS
AngularJS 강좌 7. Tables
|
| 31738 |
AngularJS
AngularJS 강좌 6. XMLHttpRequest
|
| 7208 | |
| 31737 |
AngularJS
AngularJS 강좌 5. Filters
|
| 30967 | |
| 31736 |
AngularJS
AngularJS 강좌 4. Controllers
|
| 7205 | |
| 30965 |
HTML
팁]모바일에서 전화 걸기
1
|
| 30963 | |
| 19747 | |
| 19746 |
기타
viewport 사용
|
| 19745 | |
| 19744 | |
| 19742 | |
| 7193 | |
| 7191 | |
| 31735 |
AngularJS
AngularJS 강좌 3. Directives
|
| 19741 |
jQuery
무한 스크롤 (이미지 갤러리용)
|
| 19740 |
PHP
[알고리즘] 하노이의 탑
|
| 19739 | |
| 7188 | |
| 27986 | |
| 31734 |
AngularJS
AngularJS 강좌 2. Expressions
|
| 31733 |
AngularJS
AngularJS 강좌 1. Introduction
|
| 31732 |
AngularJS
AngularJS 강좌 0. Home
|
| 7186 | |
| 19738 | |
| 19736 |
JavaScript
[알고리즘] 스택(stack)을 이용한 간단 계산기
1
|
| 7180 | |
| 7165 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기