element-plus 的el-scrollbar滚动条组件

el-scrollbar组件可以替换原生的滚动条,可以设置出现滚动条的高度,若无设置则根据容器自适应。

通过使用 setScrollTop 与 setScrollLeft 方法,可以手动控制滚动条滚动。

scroll 滚动条的滚动事件,会返回滚动条当前的位置。

<script setup lang="ts">
import { onMounted, ref } from 'vue';
import { ElScrollbar } from 'element-plus'
    const scrollEvent=({ scrollLeft, scrollTop })=>{
        console.info(scrollTop)
        val.value=scrollTop
    }

    const val=ref(0)
    const max=ref(0)
    const scrollbarRef = ref<InstanceType<typeof ElScrollbar>>()

    onMounted(()=>{
      max.value=window.innerHeight
    })


    const inputTop=(value:number)=>{
      scrollbarRef.value!.setScrollTop(value)
    }
 
</script>

    
<template>

  <el-container :direction="vertical" style="height: 100vh;">
    <el-header height="">
      <!-- Header content -->
    </el-header>
    <el-container :direction="horizontal">
      <el-aside width="200px">
        <!-- Aside content -->
      </el-aside>
      <el-container :direction="vertical">
        <el-main>
          
            <el-scrollbar height="300px" @scroll="scrollEvent" ref="scrollbarRef">
                <div class="container">
                    <p v-for="item in 30" class="item" :key="item">
                        {{ item }}
                    </p>
                </div>
            </el-scrollbar>

            <el-slider v-model="val" :min="0" :max="max" @input="inputTop">
            </el-slider>
            
        </el-main>
        <el-footer height="">
          <!-- Footer content -->
        </el-footer>
      </el-container>
    </el-container>
  </el-container>
  


</template>

<style scoped>
    .container{
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-content: center;
    }

    .item{
      flex: 1;
      background-color: lightskyblue;
      margin:10px 10px;
      height: 60px;
      text-align: center;
      border: 1px solid black;
    }

</style>

在这里插入图片描述
https://element-plus.org/zh-CN/component/scrollbar.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值