Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8278817
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 8, 20262026-06-08T09:07:46+00:00 2026-06-08T09:07:46+00:00

I am building a gallery at the moment. When a thumbnail is clicked, the

  • 0

I am building a gallery at the moment. When a thumbnail is clicked, the full-size version of that image is shown in a div. All images have the same width, but not the same height. To avoid any jumps I’ve written the script in a way that the height of the container is animated to fit the new height.

The code:

$(document).ready(function() {
    var thumb = $(".thumb");
    var bigImage = $("#big-image").find("img");
    var bigImageContainer = $("#big-image");

    thumb.click(function(e){
        var hrefToFull = $(this).find("a").attr("href"); // getting the fullsize link of clicked thumb
        var bigSrc = bigImage.attr("src"); // src of current big image
        var oldHeight = bigImage.height();

        e.preventDefault();

        bigImageContainer.css("height", oldHeight); // height = height of current img

        bigImage.fadeOut(500, function(){ // fading the image out
            bigImage.attr("src", hrefToFull); // changing src

            bigImage.load(function() { // when new image is loaded
                var newHeight = bigImage.height(); // height = height of new img
                bigImageContainer.animate({height:newHeight}, 600); // animate height
                bigImage.fadeIn(500); // fading it in again
            })
        });
    });
});

What it is supposed to do:

At first I set some variables, like the divcontaining the big image and the big image itself. When a thumb is clicked, I get the URL/src to the new big image and the URL/src of the current big image. I also assign a variable that hold the height of the current big image. Then I set the height of the container to the height of the current image, although I am not sure if this is really needed.

Then, the old image is faded out and it’s source is replaced with the src of the new image. When the new image is loaded, I assign it’s height to a variable and tell that the height of the parent div should be animated to match that height. After all this, I fade in the new image.

What it does:

Actually, it works. But sometimes, the animation just stops working. This results in either the big image overlapping the thumbs or way to much space below the big image. So my guess is that something is wrong either with the animation speed or with load.

Do you see anything that’s not right with this code? What could cause the buggy animation?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-08T09:07:47+00:00Added an answer on June 8, 2026 at 9:07 am

    This may be due to your browser caching the big image, if the image is cached then the .load function is not always called. (I believe it depends on the browser as to whether it decides to call it or not)

    I tend to get around this sort of issue by doing the following

    Instead of code like this:

    img.load(function() {
        //do some stuff once image loaded
    });
    

    I do the following:

    function doStuffToImage() {
        //do stuff to image
    }
    
    img.load(function() {
        doStuffToImage();
    });
    
    if(img.width() != 0)
        doStuffToImage();
    

    Since .load() is asynchronous you may find that in certain browsers doStuffToImage gets called twice (once because of the if statement and once because some browsers always call .load even on cached images) in which case you may need to add a boolean flag to determine if the image has been dealt with or not.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm building an image gallery and have been able to get the clicked thumbnail
I'm building an application that is an image gallery but with lots of images
I am building a small gallery that will only have 20 or so images
I am building an image gallery that is slider based and loads new images
I am building an app that will have galleries of thumbnail images to browse
I'm building an image gallery. Under the images, I want to display links under
I'm building a javascript-powered gallery on the iPad that can display both images and
I'm building an image gallery which present a few images in the frontpage. The
I'm building a django app that has an image gallery, and the client insists
I am building an Image Gallery app that would fetch about 50 - 60

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.