홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
플래쉬 느낌에 이미지 갤러리
15년 전
미리보기

소스

 

<html>
<head>
<title>xtx.kr</title>
<style type="text/css">
body {
left: 0px;
top: 0px;
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
color: #fff;
font-family: verdana, arial, helvetica, sans-serif;
}
#screen {
position:absolute;
left: 10%;
top: 10%;
width: 80%;
height: 80%;
overflow: hidden;
background: #000;
}
#grid {
position:absolute;
}
#grid img {
position: absolute;
cursor: pointer;
left: -10000px;
}
#grid .over {
border: #fff solid;
}
#notice {
position: absolute;
font-size: 0.7em;
left: 1em;
top: 1em;
width: 15em;
background: #000;
filter: alpha(opacity=70);
opacity: 0.7;
cursor: help;
padding: 0.2em;
}
#notice span {
color: #f80;
}
#title {
position: absolute;
font-size: 3em;
left: 0px;
top: 0px;
width: 100%;
font-weight: bold;
text-align: center;
color: #fff;
}
#caption {
position: absolute;
font-size: 3em;
left: 0px;
top: 90%;
width: 100%;
font-weight: bold;
text-align: center;
color: #fff;
}
</style>

<script type="text/javascript">
var O = [];
var iL;
var scr;
var grd;
var grs;
var tit;
var cap;
var xm = 0;
var ym = 0;
var nx = 0;
var ny = 0;
var nw = 0;
var nh = 0;
var cx = 0;
var cy = 0;
var cz = .2;
var Tw = 0;
var Th = 0;
var X = 0;
var Y = 0;
var F = false;
var Fo = false;
var NK = 0;


///////////////////////////////////////////////////////////////////////////////
var ZM = .8; // init zoom
var NX = 5; // grid X
var NY = 5; // grid Y
var NB = 1.2; // border size
var Mz = NX * 2; // max zoom
var mz = .1; // min zoom

var path = "이미지경로 예) http://xtx.kr/images/"; // path

var images = [
// source, title, caption
["1.jpg",".","."],
["2.jpg",".","."],
["3.jpg",".","."],
["4.jpg",".","."],
["5.jpg",".","."],
["6.jpg",".","."],
["7.jpg",".","."],
["8.jpg",".","."],
["9.jpg",".","."],
["10.jpg",".","."],
["11.jpg",".","."],
["12.jpg",".","."],
["13.jpg",".","."],
["14.jpg",".","."],
["15.jpg",".","."],
["16.jpg",".....","....."]
];
///////////////////////////////////////////////////////////////////////////////

/* ================== mouse move ====================*/
document.onmousemove = function(e)
{
if (!F)
{
if (window.event)
{
e = window.event;
}
xm = Math.min(nw, Math.max(0, (e.x || e.clientX) - nx));
ym = Math.min(nh, Math.max(0, (e.y || e.clientY) - ny));
}
}

/* ==================== resize ===================== */
function resize()
{
nx = scr.offsetLeft;
ny = scr.offsetTop;
nw = scr.offsetWidth;
nh = scr.offsetHeight;
Tw = nw * cz;
Th = nh * cz;
for (var i in O)
{
O[i].resize();
}
}

onresize = resize;

/* ============= mouseWheel - IE/Mozilla ============ */
function scroll(e)
{
if (!F)
{
var z = 0;
if (e)
{
/* Moz */
z = (e.detail > 0) ? 1 : - 1;
}
else
{
/* IE */
z = (event.wheelDelta < 0) ? 1 : - 1;
}
if (z > 0)
{
if (ZM < Mz)
{
/* zoom in */
ZM *= 1.2;
}
}
else
{
if (ZM > mz)
{
/* zoom out */
ZM *= .8;
}
}
}
else
{
/* unlock image */
F = false;
}
}

if (window.addEventListener)
{
/* Moz */
window.addEventListener('DOMMouseScroll', scroll, false);
}
else
{
/* IE */
document.onmousewheel = scroll;
}

/* =============== images constructor ================= */
function Img(n, x, y)
{
this.x = x;
this.y = y;
this.n = n;
this.loaded = false;

/* create image */
this.img = document.createElement("img");
this.img.obj = this;
this.img.src = document.getElementById('loading').src;
grd.appendChild(this.img);
this.ims = this.img.style;

/* preload */
this.pre = new Image();
this.pre.obj = this;
this.pre.onload = function()
{
this.obj.loaded = true;
this.obj.img.src = this.src;
}
this.pre.src = path + images[n % iL][0];

/* mouse events */
this.img.ondrag = function() { return false; }
this.img.onselectstart = function() { return false; }
this.img.ondblclick = this.img.onmousedown;

/* onclick image */
this.img.onmousedown = function()
{
if (this.obj.loaded)
{
if (F)
{
/* zoom out */
ZM = NK;
F = false;
}
else
{
/* zoom in */
F = this;
NK = ZM;
ZM = NX + .1;
xm = (((nw / NB) * .5) / NX) + F.obj.x * nw / NX;
ym = (((nh / NB) * .5) / NY) + F.obj.y * nh / NY;
}
}
return false;
}

/* update text image */
this.img.onmouseover = function()
{
if(Fo)
{
Fo.obj.border(false);
}
if (this.obj.loaded)
{
var i = images[this.obj.n % iL];
tit.innerHTML = i[1];
cap.innerHTML = i[2];
Fo = this;
Fo.obj.border(true);
}
else
{
tit.innerHTML = "";
cap.innerHTML = "";
}
}

/* resize image */
this.resize = function()
{
this.ims.left = Math.round(NB * this.x * Tw / NX) + 'px';
this.ims.top = Math.round(NB * this.y * Th / NY) + 'px';
this.ims.width = Math.round(Tw / NX) + 'px';
this.ims.height = Math.round(Th / NY) + 'px';
if(this == Fo.obj)
{
this.border(true);
}
}
/* borderSize */
this.border = function(over)
{
var b = 0;
var m = 0;
if (over)
{
b = Math.round(((NB * Th / NY) - (Th / NY)) * .5);
m = 2 - b;
this.img.className = "over";
}
else
{
this.img.className = "";
}
this.ims.borderWidth = b + 'px';
this.ims.marginLeft = m + 'px';
this.ims.marginTop = m + 'px';
}
}

/* =============== main loop ==================== */
function run()
{
/* zoom speed */
var vz = (ZM - cz) * .05;
if (Math.abs(vz) > .001)
{
resize();
}
else
{
vz = 0;
}

/* soften move */
cz += vz;
cx += (xm - cx) * .1;
cy += (ym - cy) * .1;

/* move grid */
grs.left = Math.round((nw * .5) - (NB * cx * Tw / nw)) + 'px';
grs.top = Math.round((nh * .5) - (NB * cy * Th / nh)) + 'px';

setTimeout(run, 16);
}


/* =================== start ==================== */
onload = function()
{
grd = document.getElementById("grid");
grs = grd.style;
scr = document.getElementById("screen");
tit = document.getElementById("title");
cap = document.getElementById("caption");
iL = images.length;

/* create grid */
var k = 0;
for (var y = 0; y < NY; y++)
{
for (var x = 0; x < NX; x++)
{
O.push(new Img(k++, x, y));
}
}

/* run */
resize();
cx = xm = nw / 2;
cy = ym = nh / 2;
run();
/* hide notice */
setTimeout( function () {
document.getElementById('notice').style.visibility = 'hidden';
}, 30000);
}
</script>
</head>

<body>
<div id="screen">
<div id="grid"></div>
<div id="notice" onclick="this.style.visibility='hidden';">
instructions:
<ul>
<li><span>Mouse</span>: move</li>
<li><span>Click</span>: zoom image</li>
<li><span>Wheel</span>: zoom in/out</li>
</ul>
</div>
</div>
<div id="title"></div>
<div id="caption"></div>
<img id="loading" alt="" src="../images/loading.jpg" style="visibility: hidden">
</body>
</html>
 

추천추천 : 203 추천 목록
번호 제목
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
3,008
 윈도우10 시스템 파일 및 Dism 검사
3,007
 텍스트 줄바꿈, 글자자르기 CSS
3,006
 jQuery Mobile에서 유용한 코드 10가지.
3,005
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,004
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,003
 [jQuery] jQuery Quick API
3,002
 [ transition ] 링크 hover 색상 변화 속도 조절
3,001
 PHP 5.3.0 에서 사라진 함수들 대체
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.