2013-04-23 21 views
21

Mam funkcję .hide(), która ukrywa elementy div na podstawie pól wyboru.Używanie jQuery .hide() z zanikaniem

JS Fiddle of it working here Real site example here

Próbuję nadać mu animację, tak aby .hide() znikną in/out, zamiast po prostu zniknąć.

Tried wykorzystując funkcję jQuery Fade ale jako parametr dla .hide() ale nie wydają się działać

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

Próbowałem, używając tego w moim kodu (patrz JS Fiddle) jak następuje:

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

Gdzie się mylę?

+0

Ważne jest, aby pamiętać, jest to, że 'hide()' metoda nie bierze efekt argumentu w ogóle. Przeczytaj [dokumentację metody] (http://api.jquery.com/hide/), aby zobaczyć różne argumenty. W takich metodach pierwszy argument lub właściwość argument jest zwykle argumentem "duration". – Boaz

Odpowiedz

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

Istnieją również fadeIn i fadeToggle.

+0

ten kciuk był dla jquery – tObi

+5

technicznie nie odpowiada na to pytanie, ponieważ pokazywanie i ukrywanie pracy na ekranie i metody zanikania działają na nieprzezroczystości. – neil1967

12

Możecie użyć @ rozwiązania Arnelle jeżeli chcesz Fadeout lub

zastąpić $(this).hide("fade", {}, 1000); z

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

przejściu "slow" dadzą piękny animacji przed ukrywanie div.

Modified swoje skrzypce ze zmianami: http://jsfiddle.net/Z9ZVk/8/

+0

Odpowiedź Arnelle zanika. Animacja z funkcją ukrywania i pokazywania jest inna niż wygaszanie ... Jest fajniejsza niż zanikanie i zanikanie w – codefreak

+0

To jest naprawdę świetne, jednak nie działa, gdy kliknięcia są klikane w krótkim odstępie czasu, co jest typowe dla e-commerce. Pomyśl, że proste przejście może sprawniej działać. To jest świetne! – Francesca

1

Spróbuj użyć fadeout z czasem trwania zamiast korzystania skórę.

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

Working Fiddle

1

Próbowałem kod w poniższym linku, Jego pracy grzywny.

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"); 
      } 
     }); 

Można również znaleźć fadeIn, wyciszenia slideUp i slideDown jQuery z thebelow link.

fadeIn fadeOut and slideUp slideDown Effects Using Jquery