2013-04-23 9 views
21

私は.hide()という機能を持っており、チェックボックスに基づいてdivを非表示にしています。jQuery .hide()をフェーディングで使用する

JS Fiddle of it working here Real site example here

私は.hide()がフェードイン/アウトではなく、ただ消えますようにそれをアニメーションを与えるためにしようとしています。

は、jQueryのフェード機能を利用しようとしましたが、.hide()のためのパラメータとしてではなく、

$("div").click(function() { 
     $(this).hide("fade", {}, 1000); 
}); 

を動作するようには思えない私は、次のように(JSフィドルを参照してください)私のコードでこれを使用してみました:

if(allSelected.length > 0){ 
      $("div.prodGrid > div:not(" + allSelected + ")").hide("fade", {}, 1000); 
     } 

どこが間違っていますか?

+0

ここで注意すべき重要なことは、 '非表示()'メソッドは全く効果の引数を取らないということです。さまざまな議論を見るには、[方法のドキュメント](http://api.jquery.com/hide/)を読んでください。このようなメソッドでは、最初の引数または引数のプロパティは通常、 'duration'引数です。 – Boaz

答えて

46
$("div").click(function() { 
    $(this).fadeOut(1000); 
}) 

fadeInfadeToggleもあります。

+0

この親指はjqueryのため – tObi

+5

これは技術的に質問に答えることができません。ディスプレイ上の表示と非表示、およびフェードメソッドが不透明で機能するためです。 – neil1967

12

あなたがフェードアウトや

があなたのdivを非表示にする前に素敵なアニメーションを与えるだろう「遅い」合格

 $(this).hide("slow");//or $(this).hide(1000); 

$(this).hide("fade", {}, 1000); を交換したい場合は、Arnelleのソリューション@使用することがあります。

変更であなたのフィドルを更新:http://jsfiddle.net/Z9ZVk/8/

+0

Arnelleの答えは消えます。 hideとshowのアニメーションはフェードアウトとは異なります...フェードアウトやフェードアウトよりもクールです – codefreak

+0

これは本当に素晴らしいですが、フィルタがすばやく連続してクリックされたときには動作しません。シンプルなフェードがうまくいくかもしれないと考えてください。これは素晴らしいです! – Francesca

1

代わりに皮を使用しての期間でfadeoutを使用してみてください。

if(allSelected.length > 0){ 
     $("div.prodGrid > div:not(" + allSelected + ")").fadeOut(1000); 
    } 

Working Fiddle

1

私は下のリンクを、その作業罰金のコードを試してみました。

Using jQuery .hide() and .show() with fading - Live Demo

$("#btnHideShow").click(function() { 
      if ($("#btnHideShow").val() == "Hide") { 
       $("#imgHideShow").hide(1000); 
       $("#btnHideShow").attr("value", "Show"); 
      } 
      else { 
       $("#imgHideShow").show(1000); 
       $("#btnHideShow").attr("value", "Hide"); 
      } 
     }); 

またthebelowリンクからのjQueryを使用してフェードイン、フェードアウト、slideUpとslideDownを見つけることができます。

fadeIn fadeOut and slideUp slideDown Effects Using Jquery