Dobbiamo nascondere una colonna td
dopo n secondi (immediatamente) tramite CSS, quando viene applicata una classe; per esempio la colonna 2 in seguente frammento:Come animare la visibilità della colonna td con CSS3
<table>
<tr>
<td>column 1</td>
<td>column 2</td>
<td>column 3</td>
</tr>
</table>
Abbiamo già provato a giocare con 'visibility'
e 'opacity'
funziona con div
, ma con td
dal momento che la visibilità è mantenere una larghezza non funziona
Nello snippet seguente, il display viene applicato immediatamente anziché dopo n secondi.
function HideColumn() {
var el = document.getElementById('columntarget');
el.className += 'hideColumn';
}
.hideColumn {
display: none;
transition: display 2s step-end;
}
td {
width: 50px;
}
<table>
<tr>
<td style='background-color:red;'>column 1</td>
<td style='background-color:yellow;' id="columntarget">column 2</td>
<td style='background-color:blue;'>column 3</td>
</tr>
</table>
<button onclick='HideColumn()'>Hide
</button>
Qualsiasi suggerimento?
EDIT:
Il frammento @Harry funziona bene, ma che cosa succede se abbiamo impostato la larghezza della tabella?
function HideColumn() {
var el = document.getElementById('columntarget');
el.className += 'hideColumn';
}
.hideColumn {
width: 0px;
overflow: hidden;
transition: all 2s step-end;
}
div {
width: 50px;
}
td {
padding: 0px;
}
table {
border-collapse: collapse;
}
<table style='width:500px;' border=1>
<tr>
<td>
<div style='background-color:red;'>column 1</div>
</td>
<td style='width:auto'>
<div style='background-color:blue;'>column 3</div>
</td>
<td>
<div style='background-color:yellow;' id="columntarget">column 2</div>
</td>
</tr>
</table>
<button onclick='HideColumn()'>Hide
</button>
Dopo 'n' secondi dovrebbe nascondere immediatamente o transizione lentamente? – Harry
immediatamente grazie – InferOn
Invece di aggiungere una classe al 'td', metti un' div' dentro il 'td' e poi aggiungi la classe ad esso. – Vucko