Simple Js Image Gallery

Hallo friends… Lama tak jumpa… masih bersama saya “Wadeblack” hehehehe…
Ok lah, cukup segini aja sapaannya, sekarang kita masuk ke materi Javascript :D
Kali ini saya akan mengkolaborasikan css dengan javascipt dan memberikan source code simple javascipt image gallery tersebut .
Pertama-tama Anda harus memiliki 15 buah gambar yang akan dimasukkan kedalam gallery Anda, sebagai contoh Saya menggunakan gambar yang ada di Facebook Saya.
buat lah 3 buah text file, beri nama ketiga file yaitu a.css, a.js, dan a.html
copy script css dibawah ini dan paste-kan ke dalam file a.css

html {
overflow: hidden;
}

body {
background: #000000;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
color: #ffffff;
font-family: verdana, arial, helvetica, sans-serif;
}

#screen {
position:absolute;
left: 10%;
top: 10%;
width: 80%;
height: 80%;
overflow: hidden;
background: #414141;
}

#grid {
position:absolute;
}

#grid img {
position: absolute;
cursor: pointer;
left: -10000px;
}

#grid .over {
border: #ff0000 solid;
}

kemudian save file tersebut, selanjutnya copy script dibawah ini dan paste-kan ke dalam file a.js

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;
var NX = 5;
var NY = 3;
var NB = 1.2;
var Mz = NX * 2;
var mz = .1;
var path   = “”;
var images = [
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
["alamat_gambar.jpg","nomor_gambar","judul_gambar"],
];
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));
}
}
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;
function scroll(e)
{
if (!F)
{
var z = 0;
if (e)
{
z = (e.detail > 0) ? 1 :  – 1;
}
else
{
z = (event.wheelDelta < 0) ? 1 :  – 1;
}
if (z > 0)
{
if (ZM < Mz)
{
ZM *= 1.2;
}
}
else
{
if (ZM > mz)
{
ZM *= .8;
}
}
}
else
{
F = false;
}
}
if (window.addEventListener)
{
window.addEventListener(‘DOMMouseScroll’, scroll, false);
}
else
{
document.onmousewheel = scroll;
}
function Img(n, x, y)
{
this.x      = x;
this.y      = y;
this.n      = n;
this.loaded = false;
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;
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];
this.img.ondrag        = function() { return false; }
this.img.onselectstart = function() { return false; }
this.img.ondblclick    = this.img.onmousedown;
this.img.onmousedown = function()
{
if (this.obj.loaded)
{
if (F)
{
ZM = NK;
F  = false;
}
else
{
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;
}
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 = “”;
}
}
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);
}
}
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’;
}
}
function run()
{
var vz = (ZM – cz) * .05;
if (Math.abs(vz) > .001)
{
resize();
}
else
{
vz = 0;
}
cz += vz;
cx += (xm – cx) * .1;
cy += (ym – cy) * .1;
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);
}
onload = function()
{
grd = document.getElementById(“grid”);
grs = grd.style;
scr = document.getElementById(“screen”);
tit = document.getElementById(“title”);
cap = document.getElementById(“caption”);
iL  = images.length;
var k = 0;
for (var y = 0; y < NY; y++)
{
for (var x = 0; x < NX; x++)
{
O.push(new Img(k++, x, y));
}
}
resize();
cx = xm = nw / 2;
cy = ym = nh / 2;
run();
setTimeout( function () {
document.getElementById(‘notice’).style.visibility = ‘hidden’;
}, 30000);
}

save, dan perhatikan script ini

["alamat_gambar.jpg","nomor_gambar","judul_gambar"],

ubah menjadi alamat, nomor, dan judul gambar yang Anda tentukan.

contoh :

["http://photos-e.ak.fbcdn.net/hphotos-ak-snc3/hs377.snc3/24155_106818309344300_100000483947570_172771_6578433_n.jpg","01","3d Outline"],

dan yang terakhir copy script dibawah ini dan paste-kan ke a.html

<html>
<head>
<title>Javascript Gallery</title>
<link rel=”stylesheet” type=”text/css” href=”a.css”>
<script src=”a.js” type=”text/javascript”>
</script>
</head>
<body>

<div align=”center”>
<div id=”screen”>
<div id=”grid”></div>
</div>
<div id=”title”></div>
<div id=”caption”></div>
<img id=”loading” alt=”" src=”loading.jpg” style=”visibility: hidden”>
</div>
</body>
</html>

kemudian save, masukkan ketiganya ke dalam 1 Folder.
Preview :

Selesai ^_^




6 Responses to “Simple Js Image Gallery”

  1. achixstrange says:

    abang ganteng !!!
    hebat banget..
    adek udah coba lhoo..
    makasi ya sayang :D

  2. bufferdie says:

    mangstaB omz !!!
    pake “B” … ihihihihi .. :lol:

  3. wadeblack says:

    ahhh, kalian bedua bisa aja
    ane jd malu :D

  4. [...] : Nightwalker Team Source : Simple Js Image Gallery April 18th, 2010 in [...]

  5. [...] : Nightwalker Team Source : Simple Js Image Gallery Posted in [...]

  6. ---rheeztt--- says:

    Yg betul gmna nii.??
    Udh gw cba brkli2 ttep ga bza. . .krim k email gw ea.?!

    thx..
    —rheeztt—

Leave a Reply

Advertise