いくつかのdivが下に配置されており、CSS可視性を使用してそれらをフェードインおよびフェードアウトしています。可視性を使用する理由は、divが場所を移動しないようにするためです。
私が使用しているフェードインの場合:
$('.drop1').css({opacity: 0.0, visibility: "visible"}).animate({opacity: 1.0});
そして、私が使用しているフェードアウトの場合:
$('.drop1').css({opacity: 0.0, visibility: "hidden"}).animate({opacity: 1.0})}, 200);
FadeInは動作します、しかしfadeOutは動作しません。
今、あなたは問題が最後の '、2'であると思うかもしれませんが、200ms後にフェードアウト/可視性:非表示がmouseleaveイベントにあるので、それを遅延として使用する必要があります。
したがって、私の質問は次のとおりです。アニメーションで非表示の可視性をフェードアウトとして機能させるにはどうすればよいですか。
どうもありがとう
$('.drop1').css({opacity: 1.0, visibility: "visible"}).animate({opacity: 0}, 200);
cSSをアニメートする代わりに、デフォルトのフェード機能を使用することができます。
$('.drop1').fadeIn(200);
$('.drop1').fadeOut(200);
編集
ただし、高さを失わずにフェードアウトする場合。 fadeTo(duration、opacity、[callback]); を使用できます
$('.drop1').fadeTo(200, 0);
この例を確認してください: http://jsfiddle.net/ufLwy/1/
私は同様の問題を抱えていましたが、ここに私がやったことです。
$.fadeToHidden = function ( selector, duration, complete ) {
$.when(
$( selector ).fadeTo( duration, 0 )
).done( function(){
$( selector ).css('visibility', 'hidden')
complete();
});
}
私がこれをした理由は
編集または、それぞれのアニメーションが完了したら、個々の要素に「visibility:hidden」を適用できます。要素のグループに対してDOMに一度だけクエリを実行するため、これは要素の大きなグループを選択するために少し速くなる場合があります。
$.fadeToHidden = function ( selector, duration, complete ) {
$.when(
$( selector ).fadeTo( duration, 0 , function(){
$(this).css('visibility', 'hidden');
} )
).done( complete );
}
私は同様の問題を抱えていましたが、この方法で解決しました:
フェードインするには:
$("#id").css({visibility:"visible", opacity: 0.0}).animate({opacity: 1.0},200);
フェードアウトするには:
$("#id").animate({opacity: 0.0}, 200, function(){
$("#"+txtid).css("visibility","hidden");
});
ご覧のとおり、アニメーションが終了したらdiv "#id"を非表示にします。手遅れではないことを望みます
私はこれが古い投稿であることを知っていますが、私は同様の状況に出くわし、これが私がやったことです
$(".drop1").css("visibility", "visible").show().fadeOut(5000);