2013-09-02 13 views
5

Mam tabelę, która ma kilka wierszy, każdy wiersz ma tło. Istnieje przycisk, który usuwa określony wiersz za pomocą fadeOut jQuery, ale podczas operacji projekt nie działa poprawnie. Komórki będą białe.Usuń wiersz z tabeli z efektem fadeOut

$(document).ready(function(){ 
    $(".btn").click(function(){ 
     $("#row").fadeOut(); 
    }); 
}); 

Ten jsfiddle lepiej opisuje mój problem.

+0

macie już efekt Fadeout? Czego dokładnie potrzebujesz? – Yasitha

+0

Proszę nie, że tło połączeń będzie miało kolor biały, a moje tło dla wierszy zerwanych –

+0

z tym efektem fadeOut, którego nie można uniknąć, ponieważ ustawia nieprzezroczystość w backhand, użyj $ ("# wiersz"). Remove() lub $ ("# wiersz "). hide(), aby uniknąć tego problemu. – maverickosama92

Odpowiedz

10

Poniższy kod będzie osiągnąć kurczy wiersz, a następnie ukryć je bez obracania tle biały

$(document).ready(function(){ 
    $(".btn").click(function(){ 
     $("#row td").animate({'line-height':0},1000).hide(1); 
    }); 
}); 

Fiddle example

Animowanie wysokość linia robi iść wszystko to jednak płynnie z webkitem.

Można też animować funkcję hide() przez ustawienie jego parametrów do czasu potrzebnego do ukrycia

$(document).ready(function(){ 
    $(".btn").click(function(){ 
     $("#row").hide(1000); 
    }); 
}); 

To jednak również cierpi z „białym tle problemu”, ponieważ ożywia krycie.

Adaptacja od http://blog.slaks.net/2010/12/animating-table-rows-with-jquery.html/ daje ładny kurczenie bez białej przestrzeni w co najmniej Chrome i Firefox

Fiddle

$(document).ready(function() { 
    $(".btn").click(function() { 
     $('#row') 
      .children('td, th') 
      .animate({ 
      padding: 0 
     }) 
      .wrapInner('<div />') 
      .children() 
      .slideUp(function() { 
      $(this).closest('tr').remove(); 
     }); 
    }); 
}); 
+0

Twoje rozwiązania są lepsze niż moje, ale problem z białym tłem istnieje. –

+0

włączone inne rozwiązanie – DGS

+0

To rozwiązanie jest bardzo trudne, ale działało dobrze. Dziękuję za wysiłek. –

0

można użyć .hide() w miejsce .fadeOut(), aby uniknąć tego problemu.

$(document).ready(function(){ 
    $(".btn").click(function(){ 
     $("#row").hide(); 
    }); 
}); 

Oto aktualizowane jsFiddle File

+0

Dziękuję, to zadziałało, ale potrzebuję efektu animacji. –

10

spróbuj tego: skrzypce

$(document).ready(function(){ 
    $(".btn").click(function(){ 
     $("#row").fadeTo("slow",0.7, function(){ 
      $(this).remove(); 
     }) 
    }); 
}); 

pracuje tutaj: http://jsfiddle.net/wnKXP/4/

ty można ustawić krycie w "0,7"

Mam nadzieję, że to pomaga.

1

Po prostu dodaj to samo tło do tabeli, które zastosowałeś do wiersza tabeli, wtedy nie zobaczysz żadnego tła dla wierszy.

$(document).ready(function(){ 
    $(".remove").click(function(){ 
    $(this).parents("tr").fadeOut(); 
    }); 
}); 

tu jest link do jsFiddle

+0

To miło, ale co z różnymi kolorami wierszy?Myślę, że tło na tr znikną td i ześlizgną się, zanim ostatecznie usuniesz tr, czy byłoby to zbyt wiele? – Chris