diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | phpfspot.js | 37 | ||||
-rw-r--r-- | themes/default/templates/single_photo.tpl | 2 |
3 files changed, 28 insertions, 12 deletions
@@ -7,6 +7,7 @@ phpfspot (1.3) * bug, fixed image handling which were slender enough, but too high. * bug, fix for PDO sqlite when trying to fetch one single row (contributed by * bug, fix for incorrect SQL query (contributed by Arun Persaud). + * bug, fixed window-movement when switching between photo index & photo * feature, removed much of HTML tables to speed up GUI & CSS cleanup * feature, key navigation (next/prev photo, photo index, reset all). * feature, gen_thumbs.php has a new overwrite-thumbnails option. diff --git a/phpfspot.js b/phpfspot.js index a2c848e..89eacba 100644 --- a/phpfspot.js +++ b/phpfspot.js @@ -18,9 +18,9 @@ function showImage(id, scrollup) } /* delete some global vars */ - delete(origHeight); - delete(origWidth); - delete(photo_details_pos); + delete(origHeight); origHeight = undefined; + delete(origWidth); origWidth = undefined; + delete(photo_details_pos); photo_details_pos = undefined; } function moveToThumb(thumb_id) @@ -29,19 +29,22 @@ function moveToThumb(thumb_id) return; if(thumbimg = document.getElementById('thumbimg' + thumb_id)) { - window.scrollTo(0, findPos(thumbimg)-100); + window.scrollTo(0, findPos(thumbimg,'top')-100); } } // moveToThumb() -function findPos(obj) { - var curtop = 0; +function findPos(obj, direction) { + var cur = 0; if (obj.offsetParent) { do { - curtop += obj.offsetTop; + if(direction == 'left') + cur += obj.offsetLeft; + if(direction == 'top') + cur += obj.offsetTop; } while (obj = obj.offsetParent); } - return [curtop]; + return [cur]; } function showCredits() @@ -269,10 +272,20 @@ function getPhotoToShow() function zoom(mod) { + var photo; + if(mod == undefined) return; - if(photo = document.getElementById('photo')) { + /* internet explorer */ + if(document.images['photo'].width) + photo = document.images['photo']; + + /* all others */ + if(photo == undefined && document.getElementById('photo').width) + photo = document.getElementById('photo'); + + if(photo != undefined) { if(origWidth == undefined) origWidth = photo.width; @@ -286,7 +299,7 @@ function zoom(mod) photo.height = new_h; if(photo_details_pos == undefined) { - photo_details_pos = document.getElementById('photo_details').offsetLeft; + photo_details_pos = findPos(document.getElementById('photo_details'),'left'); } if((photo.offsetLeft + new_w) >= photo_details_pos-20) { @@ -307,6 +320,8 @@ function zoom(mod) function hidePhotoDetails(mode) { + var photo_details; + if(photo_details = document.getElementById('photo_details')) { if(mode == 'true') { photo_details.style.visibility = 'hidden'; @@ -314,7 +329,7 @@ function hidePhotoDetails(mode) } else { photo_details.style.visibility = 'visible'; - photo_details.style.display = 'inline'; + photo_details.style.display = ''; } } } // hidePhotoDetails() diff --git a/themes/default/templates/single_photo.tpl b/themes/default/templates/single_photo.tpl index fb194a8..ea513d9 100644 --- a/themes/default/templates/single_photo.tpl +++ b/themes/default/templates/single_photo.tpl @@ -73,7 +73,7 @@ { else } <a href="{$next_url}" onclick="click(this);" title="click for the next photo" name="photo"> { /if } - <img src="{$image_url}" width="{$width}" height="{$height}" alt="{$image_filename}" id="photo" /> + <img src="{$image_url}" width="{$width}" height="{$height}" alt="{$image_filename}" name="photo" id="photo" /> </a> </div> |