使用jQuery修复html表格的部分
Making sections of an html table fixed using jQuery
我有一个HTML表,它是从服务器获取的数据动态填充的。因为我不知道之前的模式或行数,我知道它,它的行是&细胞的位置被定义为相对的。现在,一旦填充了表,我想要从表中删除一组行(由行索引数组指定)。我正在为这些行删除尝试以下动画。应该被删除的行逐渐消失,在表中留下空白空间。->其他行向上滑动以填充它们之间创建的空间。
我尝试了以下方法:
-
使用jquery简单地淡出或滑动要删除的行。这样做的问题是,动画很不稳定,我所能看到的只是一堆行同时消失。
-
将除要删除的行外的所有其他行的"位置"设置为固定,将要删除的行淡出,然后将固定的行向上滑动。这样做的问题是-由于行是相对放置的,一旦我将它们固定,它们就会失去所有以前的样式,收缩,并失去定义良好的结构并相互覆盖。实现所需动画的最佳方式是什么?
另外,如何为jQuery选择器指定一堆行(由索引列表指定)呢?现在,我正在为列表的每个元素创建tr:第n类型(I)选择器,并将它们连接在一个用','分隔的大字符串中,并将其用作所有行的选择器。有更好的方法吗?
jsBin演示
不要给表格元素添加动画。。
相反,在行单元格中动画化DIV元素。一旦它们淡出并动画到高度0
,然后你可以自由地删除父TR
的例子:
$("button").on("click", function(){
// Table with no DIV elements (Animate ROWS)
$("#noDivs tr:eq(1)").animate({opacity:0}, 800, function(){
$(this).slideUp();
});
// Table with DIVs (Animate DIV)
$("#divs tr:eq(1) div").animate({opacity:0}, 800, function(){
$(this).slideUp();
});
});
table{
border-collapse: separate;
border-spacing: 0px;
}
table td{
padding:0; margin:0;
}
table#noDivs td,
table#divs div{
border:1px solid #ddd;
padding:10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Delete rows 2</button>
<br><br>
Animate DIV instead:
<table id="divs">
<tr>
<td><div>Cell 1</div></td>
<td><div>Cell 2</div></td>
<td><div>Cell 3</div></td>
<td><div>Cell 4</div></td>
</tr>
<tr>
<td><div>Cell 1</div></td>
<td><div>Cell 2</div></td>
<td><div>Cell 3</div></td>
<td><div>Cell 4</div></td>
</tr>
<tr>
<td><div>Cell 1</div></td>
<td><div>Cell 2</div></td>
<td><div>Cell 3</div></td>
<td><div>Cell 4</div></td>
</tr>
<tr>
<td><div>Cell 1</div></td>
<td><div>Cell 2</div></td>
<td><div>Cell 3</div></td>
<td><div>Cell 4</div></td>
</tr>
</table>
Animate TR (Issue)
<table id="noDivs">
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
</table>
你应该添加/删除一个类,并使用CSS来制作动画。
这里有一个示例(仅用于测试的css)来看看它是如何工作的
table {
width:600px;
border:solid;
}
td {
border:solid;
}
/* demo purpose , instead js */
td {
pointer-events:none;
font-size:1.2em;
opacity:1;
}
tr:focus td {
font-size:0;
border:solid 0 transparent;
opacity:0;
transition:1s;/*with steps or css animation is fine too */
}
<table>
<tr tabindex="0">
<td>hide</td>
<td>my</td>
<td>row</td>
</tr>
<tr tabindex="0">
<td>hide</td>
<td>my</td>
<td>row</td>
</tr>
<tr tabindex="0">
<td>hide</td>
<td>my</td>
<td>row</td>
</tr>
<tr tabindex="0">
<td>hide</td>
<td>my</td>
<td>row</td>
</tr>
<tr tabindex="0">
<td>hide</td>
<td>my</td>
<td>row</td>
</tr>
<tr tabindex="0">
<td>hide</td>
<td>my</td>
<td>row</td>
</tr>
<tr tabindex="0">
<td>hide</td>
<td>my</td>
<td>row</td>
</tr>
<tr tabindex="0">
<td>hide</td>
<td>my</td>
<td>row</td>
</tr>
</table>
相关文章:
- 将HTML表格导出到excel时,无法将数据加载到excel文件中
- 打印预览没有应用程序页眉和页脚的html表格
- 将HTML表格导出到带有文本和图像的excel中
- JS图表和html表格重叠
- 带有单选按钮的html表格复制粘贴到xls中
- 应用程序脚本中导入HTML的数据擦除;谷歌表格
- HTML/JavaScript表格标题
- 如何使用谷歌脚本将html表单数据保存到谷歌电子表格中
- 如何在HTML中制作带导航的表格
- HTML表格导出为具有适当列宽和字体的pdf
- html表格的浮动水平滚动条
- 使用HTML / Javascript将Web应用程序生成的图表/表格转换和导出到可编辑的Powerpoint(.ppt
- 如何在不导致 HTML 表格失真的情况下正确使用追加
- 如何使用 JQuQuery 解析 JSON 对象并在 HTML 页面中以表格格式打印输出
- ModalDialog:HTML表格应该是可滚动的,而不是整个页面
- HTML表格在打印后缺少边框颜色和背景颜色
- 如何将表格html表格导出为PDF
- 从下拉列表中选择所选值后显示表格 (HTML)
- 导入Excel文件到表格HTML页面
- 用javascript将表格html转换为Excel