On 4/11/07, wyo <[EMAIL PROTECTED]> wrote:


On Apr 10, 11:58 pm, "Jonathan Sharp" <[EMAIL PROTECTED]> wrote:
> Another approach would be to print out the images like:
> echo "<img align=\"center\" src=\"$f\" style=\"display: none;\"
> class=\"photo\"><br><br>";
>
Doesn't this load all the pictures right away? Since I expect soon a
few hundreds pictures I don't want to load all.


Yes, that is true, but they'll load in the order in which they appear in the
document so it will in effect be a preload for future images.


And what about if the hiding (display:none) was done afterwards with
Javascript? So a user with Javascript disabled would still see the
pictures (of course all).


You could do that too... here's another option:

echo "<img align=\"center\" src=\"$f\" class=\"photo\"><br><br>";

Then the following jQuery code:
$(function(){
  $('img.photo').each(hidePhoto);

  function showPhoto() {
     this.src = this.$src;
     $(this).show();
  }
  function hidePhoto() {
     $(this).hide();
     this.$src = this.src;
     this.src = '';
  }

   $('img.next').bind('click', function() {
       $('img.photo:visible').each(hidePhoto).next().is('img.photo
').each(showPhoto);
   });
   $('img.prev).bind('click', function() {         $('img.photo:visible'
).each(hidePhoto).prev().is('img.photo').each(showPhoto);
   });
});

Here's another slightly modified version that handles the image loading
issue as well as non-js.

-js

Reply via email to