vue3 + element-plus 设置表格自动滚动

el-table 中设置 ref,用来获取元素,必须设置高度才可以滚动,鼠标放上停止自动滚动,可手动滚动,鼠标离开自动滚动


import { ref, onMounted, onUnmounted } from 'vue'
let timer = null
let myTable = ref(null)

const clearScroll = () => {
	clearInterval(timer)
	timer = null
}
const createScroll = () => {
	clearScroll()
	// 拿到 table
	const table = myTable.value.layout.table.refs
	// 拿到可以滚动的元素
	const tableWrapper = table.bodyWrapper.firstElementChild.firstElementChild

	timer = setInterval(() => {
		tableWrapper.scrollTop += 1
		// 判断是否滚动到底部,如果到底部了置为0(可视高度+距离顶部=整个高度)
		if (tableWrapper.clientHeight + tableWrapper.scrollTop == tableWrapper.scrollHeight) {
			tableWrapper.scrollTop = 0
		}
	}, 100)
}

onMounted(() => {
	createScroll()
})
onUnmounted(() => {
	clearScroll()
})

你可能感兴趣的:(vue.js,elementui,前端)