Rya*_*yan 8 html javascript css ajax html-table
我有这样一张桌子:
th1 th2 th3 th4 th5 th6
td1 td2 td3 td4 td5 td6
td1 td2 td3 td4 td5 td6
Run Code Online (Sandbox Code Playgroud)
使用上面的表单添加新表行,该表格运行后台进程以计算每个表中的所有数据td.该过程可能需要10-60秒.
我想要显示整个背景,而不是显示进度的单独列,tr因为它对应于计算过程的完成百分比.
例如:
th1 th2 th3 th4 th5 th6
$ 1 $ 2 $ 3 $ 4 $ 5 $ 6 [100% done, 100% of row shaded light green]
$ - $ - $ - $ - $ - $ - [ 40% done, 40% of row shaded light green]
Run Code Online (Sandbox Code Playgroud)
仅限背景:
th1 th2 th3 th4 th5 th6
|||||||||||||||||||||||||||||||||||||| [100% done, 100% of row shaded light green]
||||||||||||||| [ 40% done, 40% of row shaded light green]
||||||||| [ 25% done, 25% of row shaded light green]
|||| [ 10% done, 10% of row shaded light green]
Run Code Online (Sandbox Code Playgroud)
您有什么推荐的吗?
这是一些通用标记:
<table>
<thead>
<tr><th>th1</th><th>th2</th><th>th3</th><th>th4</th><th>th5</th><th>th6</th></tr>
</thead>
<tbody>
<tr data-progress="100"><td>$1</td><td>$2</td><td>$3</td><td>$4</td><td>$5</td><td>$6</td></tr>
<tr data-progress="40"><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>
<tr data-progress="25"><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>
<tr data-progress="10"><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
Ped*_* L. 10
对于我的解决方案,你需要在第一个额外的div td每个tr但它看起来很酷.仍需要一些改进,但你明白了......
演示 http://jsfiddle.net/CBJjv/2/
更新data-progress值后调用此函数.
var updateProgress = function () {
var trs = document.querySelectorAll('.table-body tr');
for (var i=0; i<trs.length; i++) {
var tr = trs[i];
var pr = tr.querySelector('.progress');
pr.style.left = (tr.dataset.progress - 100)+'%';
pr.style.height = tr.clientHeight + 'px';
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用固定位置并修改宽度,而不是使用位置 div
适用于Chrome,未在其他浏览器中测试过.