サムネイル画像をクリックして、サムネイルへのリンクでメイン画像を置き換える効果を作成しようとしていますが、フェードインします。これは現在使用しているコードです:
$(".thumbs a").click(function(e) {
e.preventDefault();
$imgURL = $(this).attr("href");
$(".boat_listing .mainGallery").fadeIn(400, function() {
$(".boat_listing .mainGallery").attr('src',$imgURL);
});
});
これは機能し、フェード効果なしで画像を置き換えます。 fadeInエフェクトを機能させるには、何を変更する必要がありますか?
最初にfadeOut()
にするか、非表示にする必要があります。
これを試して :
$(".thumbs a").click(function(e) {
e.preventDefault();
$imgURL = $(this).attr("href");
$(".boat_listing .mainGallery")
.fadeOut(400, function() {
$(".boat_listing .mainGallery").attr('src',$imgURL);
})
.fadeIn(400);
});
画像をfadeOut
し、非表示になったらsrc
を変更してから、fadeIn
を変更する必要があります。
編集:Sandeep Pal's anwser で、より新しい解決策を見つけることができます。
私はFadeInとfadeOutを使用する代わりに、fadeInとfadeOutが数マイクロ秒の間、それらの間に時間ギャップを作成したので、fadeTo機能を使用する方が良いです。
私はSylvainの上記のコードを使用しました:彼に感謝
$("#link").click(function() {
$("#image").fadeTo(1000,0.30, function() {
$("#image").attr("src",$("#link").attr("href"));
}).fadeTo(500,1);
return false;
});
上記のサンプルを再現しました。奇妙なちらつきが生じます。不透明度が1に復元された後、画像の読み込みを待機していることがわかりました。Sandeepによってコードを変更しました。
$("#link").click(function() {
$("#image").fadeTo(1000,0.30, function() {
$("#image").attr("src",$("#link").attr("href"));
$("#image").on('load', function(){
$("#image").fadeTo(500,1);
});
});
return false;
});`
既に100%アルファになっているものをフェードインすることはできません:)
つまり、フェードアウトするか、非表示にしてからフェードインします。
この例を作成しました。基本的に、非表示にしてからフェードします。