I den här artikeln kommer jag att gå igenom hur man enkelt kan skapa sitt eget fotogalleri eller fotoarkiv. Det krävs att du är med och förstår varje steg som görs. Det är inte så mycket kod, tvärtom det är väldigt lite kod och man kan nog minska mängden kod ännu mer om man vill, men jag har valt denna kod av pedagogiska skäl.
Mål
Målet med det här projektet är att vi ska kunna skriva ut våra bilder i en lista (<ul>) och sedan göra om listan till ett galleri där vi har en "Next"-länk och en "Prev"-länk som ska hjälpa oss bläddra igenom vårt galleri.
Demo
Om du följer denna artikel strikt så kommer slutprodukten att se ut så här:
http://www.aspkoll.se/sandbox/foto-gallery-1/
XHTML
Vi börjar med att skriva ut den XHTML koden som vi behöver.
<ul id="gallery">
<li><img src="1.jpg" alt="" /></li>
<li><img src="2.jpg" alt="" /></li>
<li><img src="3.jpg" alt="" /></li>
<li><img src="4.jpg" alt="" /></li>
<li><img src="5.jpg" alt="" /></li>
<li><img src="6.jpg" alt="" /></li>
<li><img src="7.jpg" alt="" /></li>
<li><img src="8.jpg" alt="" /></li>
</ul>
#gallery {
position:relative;
width:500px;
height:375px;
overflow:hidden;
list-style-type:none;
margin:0;
padding:0;
z-index:1;
}
#gallery li { float:left; display:none; }
#gallery li img { width:500px; height:375px; border:none;}
#prev, #next {
position:absolute;
z-index:2;
width:50px;
height:375px;
cursor:pointer;
line-height:375px;
color:#fff;
text-align:center;
font-weight:bold;
text-indent:-99999px;
}
#next { right:0; }
#prev:hover, #next:hover {
background:rgb(255,255,255);
background:rgba(255,255,255,0.4);
text-indent:0;
}$(document).ready(function() {
..HÄR LÄGGER VI ALL KOD...
}var currentEq = 0;
var amount = $('#gallery li').size();
$('#gallery li:eq('+currentEq+')').fadeIn(1000);
$('#gallery').append('<div id="prev">Prev</div><div id="next">Next</div>');$('#prev').click(function(){
var prevEq = currentEq-1;
$('#gallery li:eq('+currentEq+')').fadeOut(300, function(){
if(prevEq<0){
currentEq = amount-1;
$('#gallery li:eq('+currentEq+')').fadeIn(300);
}else{
$('#gallery li:eq('+prevEq+')').fadeIn(300);
currentEq--;
}
});
});$('#next').click(function(){
var nextEq = currentEq+1;
$('#gallery li:eq('+currentEq+')').fadeOut(300, function(){
if(nextEq==amount){
$('#gallery li:eq(0)').fadeIn(300);
}else{
$('#gallery li:eq('+nextEq+')').fadeIn(300);
}
});
if(currentEq==amount-1){ currentEq = 0; }else{ currentEq++; }
});För att se "next" och "prev" länkarna så får man peka på kanterna av bilden.
Lägger ihop hela JS koden
$(document).ready(function() { //perform actions when DOM is ready
var currentEq = 0; //Keeps track of current image
var amount = $('#gallery li').size(); //Get the amount of pictures
$('#gallery li:eq('+currentEq+')').fadeIn(1000); //Display the first image
$('#gallery').append('<div id="prev">Prev</div><div id="next">Next</div>'); //Add the navigators
$('#prev').click(function(){
var prevEq = currentEq-1;
$('#gallery li:eq('+currentEq+')').fadeOut(300, function(){
if(prevEq<0){
currentEq = amount-1;
$('#gallery li:eq('+currentEq+')').fadeIn(300);
}else{
$('#gallery li:eq('+prevEq+')').fadeIn(300);
currentEq--;
}
});
});
$('#next').click(function(){
var nextEq = currentEq+1;
$('#gallery li:eq('+currentEq+')').fadeOut(300, function(){
if(nextEq==amount){
$('#gallery li:eq(0)').fadeIn(300);
}else{
$('#gallery li:eq('+nextEq+')').fadeIn(300);
}
});
if(currentEq==amount-1){ currentEq = 0; }else{ currentEq++; }
});
});Slutord
Det här är ett mycket simpelt sätt att skapa ett eget galleri på. Man kan lägga till många olika typer av effekter, designa snyggare och lägga till nya funktioner. Meningen med det här var dock bara att ge ett tips på hur ni kan gå till väga.
Med reservation för stavfel!
Skapades: 2009-11-16 01:38:09
Skribent: Shadi
Lästs 1706 gånger
Betyg: 0 (totalt 5 röster)