An interesting problem ... after some time with your code (last update), I saw that the blind animation didn’t actually work in my browser (I am testing Chrome, and maybe it was shelling but I didn’t see it since the image was never hidden first), so I tried moving it inside the function bound to load :
$('img').bind('load', function() { ... $(this).show('blind', 500); });
Now that it was animated, it seemed like a “snap” or “jump” after the animation ended, and also seemed to appear with the wrong field. This eliminates the inability of jQuery to correctly calculate the dimensions of what has not yet been displayed on the screen. In addition, blind seems to need more explicit measurements for proper operation. This is the problem: how to calculate the sizes of elements until they appear on the screen?
One way to do this is to fade out in an element whose dimensions you are trying to calculate very little - not enough to see yet - do some calculations, then hide it and prepare it to animate the appearance. You can achieve this with jQuery using the fadeTo function:
$('img').bind('load', function() { $(this).fadeTo(0, 0.01, function() {
You will need to work out the measurements, apply them using the css() function, dazzle the image, and then reset the image styles to return to their original states, thanks to the blind animation, which needs these measurements explicitly. I would also recommend using classes in css to help you improve things a bit. Here is a detailed working example: jsfiddle desktop
Not the most elegant way to do something, but this is the beginning. There are much simpler ways to achieve seemingly better results, and I think I just want to know why you are looking to make the blinds and explicit alignment this way? This is a much more difficult achievement with the code you used ... anyway, hope this helps! :)