I'm sure there's a cleaner way to do this, but my first thought would be to
wrap the img in a div, set the div to have the image as it's background,
then fade the new image src in front of it.

Example (untested code):

var img = $('#image img');
var div = $('<div></div>').css(
   {
      display:'inline',
      width:img.width(),
      height:img.height(),
      backgroundImage:'url:('+img.attr('src')+')'
   }).insertBefore(img).append(img);
img.css({opacity:0}).attr('src',newSrc);
img.fadeTo(500,1,function(){ img.insertAfter(div);div.remove(); });

JK

-----Original Message-----
From: jquery-en@googlegroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of daveJay
Sent: Monday, June 23, 2008 5:23 PM
To: jQuery (English)
Subject: [jQuery] Fade in an Image by replacing the src


I'm trying to switch out an image by dynamically changing the source
value of an image. I tried using other methods of image replacement
but none of them work smoothly, there's major performance problems.

So anyway. Here's how I'm doing it right now.

j("#image img").fadeTo(500,0,function() {
        j("#image img").attr({src : imgSrc});
}).fadeTo(500, 1);

I'm fading out the image, changing the source, and then fading it back
in again. Is there a way to fade the source change in?
Basically I want to fade this code in: j("#image img").attr({src :
imgSrc});

Is that possible? I tried the animate function but that only animates
in CSS changes and not html attribute changes (as far as I can tell)

Thanks,

-David

P.S. Here's the page I'm working on:
http://sandbox.exit42design.com/photography/index2.html

Reply via email to