added thumbnail preloading

This commit is contained in:
ville rantanen
2012-02-10 12:25:55 +02:00
parent 30d2007ecf
commit ebc7511199

View File

@@ -107,6 +107,15 @@ function preload(i) {
prestr='<img src="_med/med_'+encodeURIComponent(imagelist[left])+'.jpg" />'; prestr='<img src="_med/med_'+encodeURIComponent(imagelist[left])+'.jpg" />';
prestr+='<img src="_med/med_'+encodeURIComponent(imagelist[right])+'.jpg" />'; prestr+='<img src="_med/med_'+encodeURIComponent(imagelist[right])+'.jpg" />';
} }
maxThumb=getmaxthumbs();
ends=getThumbStartEnd(i+maxThumb,maxThumb);
for (n=ends.first; n<ends.last; n++) {
prestr+='<img src="_tn/tn_'+encodeURIComponent(imagelist[n])+'.jpg"/>';
}
ends=getThumbStartEnd(i-maxThumb,maxThumb);
for (n=ends.first; n<ends.last; n++) {
prestr+='<img src="_tn/tn_'+encodeURIComponent(imagelist[n])+'.jpg"/>';
}
ob.innerHTML=prestr; ob.innerHTML=prestr;
preloadcheck(); preloadcheck();
preloader=setInterval('preloadcheck()',100); preloader=setInterval('preloadcheck()',100);
@@ -136,16 +145,13 @@ function thumblist(n,curr) {
if (imagelist.length==0) { return; } if (imagelist.length==0) { return; }
ob=document.getElementById('thumbcontainer'); ob=document.getElementById('thumbcontainer');
ob.style.width=document.body.clientWidth-30; ob.style.width=document.body.clientWidth-30;
startI=Math.max(0,n+1-Math.round((maxThumb/2))); ends=getThumbStartEnd(n,maxThumb);
startI=Math.min(startI,imagelist.length-maxThumb); currentlist=ends.last;
startI=Math.max(0,startI); nright=ends.last-Math.round((maxThumb/2))+maxThumb-1;
endI=Math.min(startI+maxThumb,imagelist.length);
currentlist=endI;
nright=endI-Math.round((maxThumb/2))+maxThumb-1;
nleft=nright-maxThumb-maxThumb; nleft=nright-maxThumb-maxThumb;
if (maxThumb%2==1) { nright+=1; nleft+=1; } if (maxThumb%2==1) { nright+=1; nleft+=1; }
leftstr='<span title="[shift left arrow]" id="arrowleft" class="thumbbox" onclick="thumblist('+String(nleft)+','+String(curr)+')">&larr; <div class="arrowtext">('+startI+')</div></span>'; leftstr='<span title="[shift left arrow]" id="arrowleft" class="thumbbox" onclick="thumblist('+String(nleft)+','+String(curr)+')">&larr; <div class="arrowtext">('+ends.first+')</div></span>';
rightstr='<span title="[shift right arrow]" id="arrowright" class="thumbbox" onclick="thumblist('+String(nright)+','+String(curr)+')">&rarr; <div class="arrowtext">('+(imagelist.length-endI)+')</div></span>'; rightstr='<span title="[shift right arrow]" id="arrowright" class="thumbbox" onclick="thumblist('+String(nright)+','+String(curr)+')">&rarr; <div class="arrowtext">('+(imagelist.length-ends.last)+')</div></span>';
menustr='<span id="thumbmenu" class="thumbmenu"><span id="allthumbs" class="menuitem" onclick="allthumbs()" title="show all thumbs">all thumbnails</span>'+ menustr='<span id="thumbmenu" class="thumbmenu"><span id="allthumbs" class="menuitem" onclick="allthumbs()" title="show all thumbs">all thumbnails</span>'+
'<span>Order:</span><span class="menuitem" id="sortalpha" onclick="sortlist(\'alpha\')">name</span>/'+ '<span>Order:</span><span class="menuitem" id="sortalpha" onclick="sortlist(\'alpha\')">name</span>/'+
'<span class="menuitem" id="sorttime" onclick="sortlist(\'time\')">time</span>/'+ '<span class="menuitem" id="sorttime" onclick="sortlist(\'time\')">time</span>/'+
@@ -153,7 +159,7 @@ function thumblist(n,curr) {
'<span>Original:</span><span class="menuitem" id="originals" onclick="fliporiginals()">'+String(originals)+'</span>'+ '<span>Original:</span><span class="menuitem" id="originals" onclick="fliporiginals()">'+String(originals)+'</span>'+
'<span>Fullscreen:</span><span class="menuitem" id="fullscreen" onclick="flipfullscreen()">'+String(fullscreen)+'</span></span>'; '<span>Fullscreen:</span><span class="menuitem" id="fullscreen" onclick="flipfullscreen()">'+String(fullscreen)+'</span></span>';
thumbstr='<div><span class="headsmall">Images</span>'+menustr+'</div><div id="thumbrow">'+leftstr; thumbstr='<div><span class="headsmall">Images</span>'+menustr+'</div><div id="thumbrow">'+leftstr;
for (i=startI; i<endI; i++) { for (i=ends.first; i<ends.last; i++) {
thumbstr+='<span id="n'+i+'" class="imagebox thumbbox"><img class="thumbimage" title="'+titlestring(imagedesc[i])+'" onclick="showimage('+String(i)+')" src="_tn/tn_'+encodeURIComponent(imagelist[i])+'.jpg"><br/><a href="'+encodeURIComponent(imagelist[i])+'" target="_blank">'+nicestring((imagelist[i]))+'</a></span>'; thumbstr+='<span id="n'+i+'" class="imagebox thumbbox"><img class="thumbimage" title="'+titlestring(imagedesc[i])+'" onclick="showimage('+String(i)+')" src="_tn/tn_'+encodeURIComponent(imagelist[i])+'.jpg"><br/><a href="'+encodeURIComponent(imagelist[i])+'" target="_blank">'+nicestring((imagelist[i]))+'</a></span>';
} }
thumbstr+=rightstr+'</div>'; thumbstr+=rightstr+'</div>';
@@ -173,6 +179,14 @@ function thumblist(n,curr) {
return; return;
} }
function getThumbStartEnd(n,maxThumb) {
startI=Math.max(0,n+1-Math.round((maxThumb/2)));
startI=Math.min(startI,imagelist.length-maxThumb);
startI=Math.max(0,startI);
endI=Math.min(startI+maxThumb,imagelist.length);
return {first: startI, last: endI}
}
function allthumbs() { function allthumbs() {
// Shows all the thumbnails in the current folder // Shows all the thumbnails in the current folder
ob=document.getElementById('thumbcontainer'); ob=document.getElementById('thumbcontainer');