el-scrollbar随着内容自动滚动

滚动条只有在内容超出他的高度时才会出现,那么之前他的scrollHeight都是0,如果想让滚动条随着内容的增加而往底部滚动,可以用如下方法:

1、首先需要给滚动条设置“ref“值,这里的ref是个对象,当随着”outputMessage“的数组长度增加的时候,滚动条就会往底部移动。

  <el-tab-pane  :label="$t('flashTest.info')">
        <el-scrollbar height="200px" ref="scrollbarOutputsRef" always>
           <p
            :class="{
           'error-text': item.type === 'error',
           'common-text': item.type === 'common'
           }"
            v-for="item in outputMessages"
            :key="item"
            class="scrollbar-item"
            >{{ item.message }}</p>
          </el-scrollbar>
        </el-tab-pane>
scrollbar的ref有以下属性
wrapRef--对象类型:滚动条的scrollHeight、scrollWidth等等属性
handleScroll(触发滚动事件)--函数类型 ()=> {}
scrollTo(滚动到一组特定坐标)--函数类型: (number, number) => {}
如果是横向滚动条,那么第二个参数就可以填为0,第一个参数就填需要滚动到的位置
如果是纵向滚动条,那么第一个参数就可以填为0, 第二个参数就填纵向需要滚动的位置
setScrollTop(设置滚动条到底部的距离)--函数类型 (number) =>{}
setScrollLeft(设置滚动条到左边的距离)--函数类型 (number) => {}
update(手动更新滚动条状态)--函数类型 () => {}

2、设置一个”距离值“,每次调用这个”listenoutputScrollbarTop“函数时,就让滚动条的”scrollTop“递增值,这个值一定要比每一条数据的高度大,他才会自动滚动,在这里,我的每个”item“的高度在15px左右,所以我设置的距离为20。

之后调用它的ref值中的setScrollTop函数,传每次的距离进去。

const scollbarOutputRef = ref({})
const outputSScrollbarDistance = ref(0)

const listenOutputScrollbarTop  = async(itemRef) => {
  await nextTick().then(()=> {
    outputsScrollbarDistance.value += 20
    itemRef.setScrollTop(outputsScrollbarDistance.value)
  })
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-scrollbarelement-ui 中的一个组件,可以用于实现在一个容器内部的无限滚动效果。实现自动滚动可以通过设置 el-scrollbar 的属性和使用 JavaScript 的 DOM 操作来完成。 首先在需要实现滚动效果的容器上添加 el-scrollbar,例如: ```html <el-scrollbar style="height: 300px;"> <ul> <li>...</li> <li>...</li> <li>...</li> ... </ul> </el-scrollbar> ``` 其中 ul 列表是需要滚动内容。接下来,可以使用 CSS 的 overflow 属性来隐藏容器内多余的内容,只显示 el-scrollbar 内部的内容: ```css ul { overflow: hidden; padding: 0; margin: 0; list-style: none; } ``` 为了实现自动滚动,可以使用 JavaScript 来控制内容滚动的位置,以及设置一个定时器来定期滚动内容。 ```js // 获取 el-scrollbar 中的 ul 列表 const ul = document.querySelector('.el-scrollbar ul'); // 每秒滚动50个像素 const scrollSpeed = 50; function scrollStep() { ul.scrollTop += scrollSpeed; // 如果已经滚动到底部,回到顶部 if (ul.scrollTop + ul.offsetHeight >= ul.scrollHeight) { ul.scrollTop = 0; } } // 每隔一定的时间调用一次 scrollStep setInterval(scrollStep, 1000 / 60); ``` 上述代码中通过获取 el-scrollbar 中的 ul 列表,然后每次将 scrollTop 属性递增 scrollSpeed 的值来实现自动滚动。如果滚动到了内容的底部,则将 scrollTop 重置为0,实现循环滚动的效果。 综上所述,通过使用 el-scrollbar 组件以及 CSS 和 JavaScript 的操作,可以实现容器内部自动滚动的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值