2013-09-02 8 views
5

Ich habe eine Tabelle, die einige Zeilen hat, jede Zeile hat einen Hintergrund. Es gibt eine Schaltfläche, die angegebene Zeile mit jQuery fadeOut entfernen, aber während der Operation wird das Design nicht gut.Zellen Hintergrund weiß sein.Zeile aus Tabelle mit FadeOut-Effekt entfernen

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

Diese jsfiddle beschreibt mein Problem besser.

+0

Sie bereits die fadeout Wirkung hat? Was brauchst du genau? – Yasitha

+0

Bitte nicht das Anrufe Hintergrund wird weiße Farbe sein und mein Hintergrund für Zeilen gebrochen –

+0

mit diesem FadeOut-Effekt können Sie nicht vermeiden, weil es Deckkraft in Rückhand legt, verwenden $ ("# row"). Remove() oder $ ("# row "). hide() um dieses Problem zu vermeiden – maverickosama92

Antwort

10

Der Code unten wird eine schrumpfende Zeile erreichen und dann verstecken, ohne den Hintergrund weiß

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

Fiddle example

Animieren Zeilenhöhe zu drehen doesnt gehen mit webkit jedoch alles reibungslos.

Sie können auch durch Einstellen seiner Parameter an die Zeit, um die hide() Funktion animieren

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

Das aber auch aus dem „weißen Hintergrund Problem“ leidet zu verstecken genommen, da es die Opazität beseelt.

von http://blog.slaks.net/2010/12/animating-table-rows-with-jquery.html/ Anpassung gibt einen schönen Schrumpfen ohne Leerraum in mindestens Chrome und 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

Ihre Lösungen besser als meins, aber weißes Hintergrundproblem existiert .. –

+0

enthalten eine andere Lösung – DGS

+0

Diese Lösung ist sehr schwierig, aber gut funktioniert.Vielen Dank für Ihre Mühe –

0

können Sie .hide() anstelle von .fadeOut() verwenden, um dieses Problem zu vermeiden.

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

hier wird der jsFiddle File aktualisiert

+0

Danke, das hat funktioniert, aber ich brauche Animationseffekt. –

10

versuchen Sie dies:

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

Arbeits Geige hier: http://jsfiddle.net/wnKXP/4/

Sie kann die Opazität in "0.7" setzen

Ich hoffe es hilft.

1

Fügen Sie einfach den gleichen Hintergrund zu Ihrer Tabelle hinzu, den Sie für die Tabellenzeile angewendet haben, dann sehen Sie keinen Hintergrund für Zeilen.

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

hier ist der Link für jsFiddle

+0

Das ist nett, aber was ist mit verschiedenen Reihenfarben?Ich denke, Hintergrund auf tr ausblenden td und schieben Sie tr vor, bevor Sie schließlich tr entfernen, oder wäre das zu viel? – Chris

Verwandte Themen