HBuilder MUI 中想要实现:添加固定列固定表头的表格,单元格根据宽度自适应,参考如下链接:https://www.douban.com/note/286673563/,还有他的github封装好的android的工程文件,链接如下:移动端固定列js工具,只要把这些文件放在html中,就可以实现固定前几列,然后水平和竖向滚动:
1.导入js和css文件:
2.接着在自己的html这么用:特别注意作者的表格,宽度不是自适应的,会有换行的出现,你可以在table上添加如下css样式:
<table class="table browser-table " id="example" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
<!DOCTYPE HTML>
<html>
<head>
<title>Mobile Fixed Columns Table example(bootstrap.css)</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link href="../css/scroll/bootstrap.min.css" rel="stylesheet">
<link href="../css/scroll/table_scroll.css" rel="stylesheet">
<script src="../js/scroll/jquery.js"></script>
<script src="../js/scroll/jquery.dataTables.js"></script>
<script src="../js/scroll/FixedColumns.js"></script>
<script src="../js/scroll/iscroll.js"></script>
<script src="../js/scroll/datatables.mobile-fixed-columns-table.js"></script>
<script>
$(document).ready(function() {
var headerHeight = $('.header').outerHeight(true);
var theadHeight = $('#example thead').outerHeight(true);
var footerHeight = $('.footer').outerHeight(true);
var scrollY = $(window).height() - headerHeight - theadHeight - footerHeight;
$('#example').mobileFixedColumnsTable({
'sScrollY': '450px',
'sScrollX': '100%',
'bScrollCollapse': true,
'oLanguage': {
'sInfo': ''
}
}, {
fixedColumnsOptions: { // 请参考DataTables的FixedColumns的配置
iLeftColumns: 2
},
scrollerOptions: { // 请参考iScroll的配置
onScrollMove: function() {
//console.log(this, arguments);
}
}
});
});
</script>
</head>
<body>
<div class="table-responsive">
<table class="table browser-table " id="example" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
<thead>
<tr>
<th>品种</th>
<th>最新价</th>
<th>涨跌</th>
<th>买价</th>
<th>卖价</th>
<th>最高价</th>
<th>最低价</th>
<th>时间</th>
</tr>
</thead>
<tbody>
<tr class="gradeX">
<td>黄金9999</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeC">
<td>黄金9998</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>黄金9997</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>黄金9995</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>黄金9994</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>黄金9993</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>黄金9992</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>黄金9991</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>黄金9991</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>黄金9990</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>青铜9999</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>青铜9998</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>青铜9997</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>青铜9994</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>青铜9994</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>青铜9994</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>青铜9994</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
<tr class="gradeA">
<td>青铜9994</td>
<td>279.15</td>
<td>1.31</td>
<td>279.10</td>
<td>288.45</td>
<td>299.45</td>
<td>340.45</td>
<td>2018-01-30</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
css文件内容table_scroll.css:
/* 为了滚动的表格使用样式:
* 覆盖bootstrap的样式, 默认为100%, 会造成水平滚动条出不来 */
table {
max-width: none;
}
.table {
margin-bottom: 0;
}
.table td {
border-top-style: dotted;
}
.browser-table tr.odd.gradeA {
background-color: #ddffdd;
}
.browser-table tr.even.gradeA {
background-color: #eeffee;
}
.browser-table tr.odd.gradeC {
background-color: #ddddff;
}
.browser-table tr.even.gradeC {
background-color: #eeeeff;
}
.browser-table tr.odd.gradeX {
background-color: #ffdddd;
}
.browser-table tr.even.gradeX {
background-color: #ffeeee;
}
.browser-table tr.odd.gradeU {
background-color: #ddd;
}
.browser-table tr.even.gradeU {
background-color: #eee;
}
.DTFC_LeftHeadWrapper,
.DTFC_LeftBodyWrapper {
border-right: 0px solid #000;/*1px的话就有横线*/
}
.DTFC_LeftHeadWrapper,
.dataTables_scrollHeadInner {
border-bottom: 0px solid #000;/*1px的话就有横线*/
}
.header {
text-align: center;
background: #0290da;
margin: 0;
}
.footer {
position: absolute;
bottom: 2px;
right: 2px;
width: 100%;
text-align: right;
background: #f5f5f5;
padding: 10px 0;
}
.name {
text-decoration: none;
color: #333;
}
这样之后,就可以实现移动端的水平和竖向滚动,并且固定前几列功能,效果还不错,再次感谢作者,关于刷新数据的,还在研究中: