在开发响应式表格的时候,需要考虑到如何判断表格是否需要换行。假如有一张表格宽度是600像素,在移动设备上显示时宽度只有375像素,那就无法完整显示表格。因此需要判断表格是否需要换行。
function checkTableResponsive() {
var table = document.getElementById("table-id");
var tableWidth = table.offsetWidth;
var parentWidth = table.parentNode.offsetWidth;
if (tableWidth >parentWidth) {
table.classList.add("responsive");
} else {
table.classList.remove("responsive");
}
}上面的代码通过比较表格和父元素的宽度,如果表格宽度大于父元素宽度,则给表格添加一个responsive类名,对应的样式中定义了max-width: 100%;如果不需要响应式,则移除responsive类名。这样表格就能根据父元素的宽度自动进行换行。
2.如何解决表格中出现过长的单元格?在表格中,如果某单元格中的数据比较多,那么宽度可能会超出屏幕,导致其他单元格的宽度也受到影响。为了解决这个问题,需要对单元格中的内容进行截取,超出部分不再显示。
.table-responsive td {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}上面的代码定义了表格单元格的样式,使用了nowrap属性让单元格内容不换行,使用了overflow:hidden属性让超出部分隐藏,使用了text-overflow:ellipsis属性让超出部分显示省略号。这样能够解决过长单元格导致的影响。
3.如何在移动设备上实现表格滚动?在移动设备上,有时候希望表格能够跟随手指滑动,这样能更好的看到表格的内容。当然,我们可以通过自己编写JavaScript来实现这个功能。
var scrolling = false,
oldX = 0,
oldY = 0,
newX = 0,
newY = 0;
document.getElementById("table-id").addEventListener('touchstart', function (e) {
scrolling = false;
oldX = e.touches[0].pageX;
oldY = e.touches[0].pageY;
}, false);
document.getElementById("table-id").addEventListener('touchmove', function (e) {
if (Math.abs(e.touches[0].pageY - oldY) >10) {
scrolling = true;
return;
}
newX = oldX - e.touches[0].pageX;
newY = oldY - e.touches[0].pageY;
var el = document.getElementById("table-id");
var left = el.scrollLeft + newX;
var top = el.scrollTop + newY;
el.scrollLeft = left;
el.scrollTop = top;
oldX = e.touches[0].pageX;
oldY = e.touches[0].pageY;
}, false);
document.getElementById("table-id").addEventListener('touchend', function (e) {
if (scrolling) {
e.preventDefault();
}
}, false);上面的代码实现了当用户手指在表格上滑动时,表格能够自动滚动。当然,这只是其中一种实现方式,在实际开发中需要根据实际情况进行调整。
以上就是JavaScript响应式表格的主要技术,你也可以根据实际情况进行扩展。同时,在开发过程中,也需要注意性能问题,对于表格中的复杂操作,需要进行异步加载,保持操作的实时性和流畅性。查看更多关于javascript 响应式表格的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did252889