scrollTop/clientHeight/scrollHeight
实现自行滚动
// 注意:设置interval循环计数器,不用时需要clearInterval(interValId.current),避免造成内存泄漏
interValId.current = setInterval(() => {
scorllRow();
}, 100);
const scorllRow = () => {
// 获取table中table-body的Dom元素
const tableEle = document.querySelector('#tableId .ant-table-body');
if (tableEle) {
const tableClientHeight = tableEle.clientHeight; // clientHeight:body元素的客户可是窗口高度
const tableScrollHeight = tableEle.scrollHeight; // scrollHeight:body实际高度,包含溢出遮挡部分;
const tableScrollTop = tableEle.scrollTop; // scrollTop:可是窗口到实际文档定位的距离,即滚动的距离
if (tableClientHeight + tableScrollTop < tableScrollHeight) {
tableEle.scrollTop += 1;
} else {
tableEle.scrollTop = 0;
}
}
};
// 元素
<Table id="tableId" {...rest} dataSource={dataSource} />
如图:
scrollHeight: 表示实际文档的高度;
scrollTop:表示当前可视窗口到实际文档顶部的高度,即文档滚动的距离;
clientHeight:表示当前元素可视窗口的高度。
clientWidth/scrollLeft/scrollWidth:同理
获取元素的三个高度值,并且通过设置scrollTop的距离来让窗口中的内容滑动起来;