vue3自动滚动(无缝滚动)组件
vue自动滚动组件,只需传入需要滚动的数据,组件便能实现基于定时器的自动滚动功能,易复用,使用简单。
·
基于interval的自动滚动(无缝滚动)组件
组件AutoScroll.vue
<script setup lang="ts">
const scrollRef = ref<HTMLElement>()
let timer: NodeJS.Timeout
function startScroll() {
timer = setInterval(() => {
if (scrollRef.value) {
scrollRef.value.scrollTop += 1 // 速率
let maxScrollTop = scrollRef.value.scrollHeight - scrollRef.value.clientHeight // 最大滚动高度
if (scrollRef.value.scrollTop >= maxScrollTop) {
scrollRef.value.scrollTop = 0 // 重置高度
}
}
}, 50)// 速率
}
onMounted(() => {
startScroll()
})
onBeforeUnmount(() => {
clearInterval(timer)
})
</script>
<template>
<div class="scroll-wrap no-scrollbar" ref="scrollRef">
<slot></slot>
</div>
</template>
<style scoped>
.scroll-wrap {
width: 100%;
height: 10rem;
overflow-y: auto;
}
.no-scrollbar::-webkit-scrollbar {
display: none;
}
/* 隐藏 IE, Edge 和 Firefox 的滚动条 */
.no-scrollbar {
-ms-overflow-style: none;
/* IE 和 Edge */
scrollbar-width: none;
/* Firefox */
}
</style>
使用方式
<AutoScroll>
...
</AutoScroll>
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)