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[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;
preloadcheck();
preloader=setInterval('preloadcheck()',100);
@@ -136,16 +145,13 @@ function thumblist(n,curr) {
if (imagelist.length==0) { return; }
ob=document.getElementById('thumbcontainer');
ob.style.width=document.body.clientWidth-30;
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);
currentlist=endI;
nright=endI-Math.round((maxThumb/2))+maxThumb-1;
ends=getThumbStartEnd(n,maxThumb);
currentlist=ends.last;
nright=ends.last-Math.round((maxThumb/2))+maxThumb-1;
nleft=nright-maxThumb-maxThumb;
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>';
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>';
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-ends.last)+')</div></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 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>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;
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+=rightstr+'</div>';
@@ -173,6 +179,14 @@ function thumblist(n,curr) {
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() {
// Shows all the thumbnails in the current folder
ob=document.getElementById('thumbcontainer');