私の意図は、画像を素敵なフェード効果に置き換えることでした。背景として1つの画像Aがあります。マウスホバーで、画像Bのフェードイン。マウスアウトすると、画像BがfadeOutになり、画像Aが再び表示されます。私はこのコードを使用しています:
<script type='text/javascript'>
$(function() {
$("img.fade")
.mouseover(function() {
$(this).fadeOut(2000);
})
.mouseout(function() {
$(this).fadeIn(2000);
});
});
</script>
ただし、問題は、ユーザーがホバーしたままの場合、ループを継続することです(fadeIn、fadeOut、fadeIn、fadeOut ..)。フェードフィニッシュ時にそれが保持されるようにしたい。ユーザーがマウスを外したとき、ちょうどその時、私は新しいフェードが起こることを望みます。ありがとう!
psこれは2つの画像を使用するための動作コードです。これは問題の別の解決策であり、質問が解決された後にこれを広告します。
<script type='text/javascript'>
$(function() {
$('img.fade').hover(function() {
var src = $(this).attr("src").match(/[^\.]+/) + "_over.jpg";
$(this)
.animate({opacity:0},0)
.attr('src',src)
.stop()
.animate({opacity:1},1000);
}, function() {
var src = $(this).attr("src").replace("_over", "");
$(this)
.animate({opacity:0},0)
.attr('src',src)
.stop()
.animate({opacity:1},500);
});
});
</script>