Element Plus 实例详解(五)___Scrollbar 滚动条

2023-11-20

Element Plus 实例详解(五)___Scrollbar 滚动条

本文目录:

一、前言

二、搭建Element Plus试用环境

 1、搭建Vue3项目(基于Vite + Vue)

 2、安装Element Plus

三、Element Plus Scrollbar 滚动条功能试用

1、基础用法

2、横向滚动Scrollbar 滚动条

3、Scrollbar 滚动条最大高度

4、手动滚动Scrollbar 滚动条

四、官方资料中的各参数说明

五、总结


一、前言

  Element Plus Scrollbar 滚动条,用于替换浏览器原生滚动条。主要内容有:Scrollbar 滚动条基础用法,横向滚动Scrollbar用法,Scrollbar滚动条最大高度与元素高度关系,手动滚动Scrollbar滚动条。

二、搭建Element Plus试用环境

 1、搭建Vue3项目(基于Vite + Vue)

  安装时请选择支持Typescript,本实例我安装在(C:\00program\vue\vuelearn\vueviteproject1)目录中,具体方法详见下面文章:

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)https://blog.csdn.net/weixin_69553582/article/details/129630880

   安装完成后打开浏览器:http://localhost:5173/  ,能正常显示欢迎页面:

 2、安装Element Plus

  • NPM:npm install element-plus --save

详细参考:

Element Plus 实例详解系列(一)__安装设置https://blog.csdn.net/weixin_69553582/article/details/129701286

三、Element Plus Scrollbar 滚动条功能试用

1、基础用法

  • 通过 height 属性设置滚动条高度,
  • 若不设置则根据父容器高度自适应。

实现效果:

完整代码:

<template>
    <el-scrollbar height="200px">
        <H2 v-for="item in 1" :key="item" class="scrollbar-demo-item">
            Scrollbar 滚动条内容{{ item }}:<br /><br />
            逆境清醒:<br />
            阳光总在风雨后,<br />
            历练中完成自我升华!<br />
            共勉!<br />
        </H2>
    </el-scrollbar>
</template>

<style scoped>
    .scrollbar-demo-item {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 400px;
        margin: 10px;
        padding:30px;
        width:300px;
        text-align: left;
        border-radius: 4px;
        background: var(--el-color-primary-light-9);
        color: var(--el-color-primary);
        border:5px solid #0094ff;
    }
</style>

2、横向滚动Scrollbar 滚动条

  • 当元素宽度大于滚动条宽度时,会显示横向滚动条。

实现效果:

完整代码:

<template>
    <div class="scrollbar-flex-content">
        <el-scrollbar>
            <div class="scrollbar-flex-content">
                <h2 v-for="item in 5" :key="item" class="scrollbar-demo-item">
                    逆境清醒:{{ item }}<br />
                    阳光总在风雨后,<br />
                    历练中完成自我升华!<br />
                    共勉!<br />
                </h2>
            </div>
        </el-scrollbar>
    </div>
</template>

<style scoped>
    .scrollbar-flex-content {
        display: flex;
        width: 350px;
    }

    .scrollbar-demo-item {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 250px;
        height: 200px;
        margin: 10px;
        text-align: center;
        border-radius: 4px;
        background: var(--el-color-danger-light-9);
        color: var(--el-color-danger);
        padding: 30px;
        border: 5px solid pink;
    }
</style>

3、Scrollbar 滚动条最大高度

  • 当元素高度超过最大高度,才会显示滚动条。

实现效果:


完整代码:

<template>
    <el-button @click="add">Add Item</el-button>
    <el-button @click="onDelete">Delete Item</el-button>
    <el-scrollbar max-height="300px">
        <h3 v-for="item in count" :key="item" class="scrollbar-demo-item">
            逆境清醒:{{ item }}<br />
            阳光总在风雨后,<br />
            历练中完成自我升华!<br />
            共勉!<br />

        </h3>
    </el-scrollbar>
</template>

<script lang="ts" setup>
    import { ref } from 'vue'
    const count = ref(3)

    const add = () => {
        count.value++
    }
    const onDelete = () => {
        if (count.value > 0) {
            count.value--
        }
    }
</script>

<style scoped>
    .scrollbar-demo-item {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 200px;
        margin: 10px;
        text-align: center;
        border-radius: 4px;
        background: var(--el-color-primary-light-9);
        color: var(--el-color-primary);
        border: 5px solid #0094ff;
    }
</style>

4、手动滚动Scrollbar 滚动条

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

实现效果:

 完整代码:

<template>
    <el-scrollbar ref="scrollbarRef" height="300px" always @scroll="scroll">
        <div ref="innerRef">
            <h3 v-for="item in 5" :key="item" class="scrollbar-demo-item">
                逆境清醒:{{ item }}<br />
                阳光总在风雨后,<br />
                历练中完成自我升华!<br />
                共勉!<br />
            </h3>
        </div>
    </el-scrollbar>

    <el-slider v-model="value"
               :max="max"
               :format-tooltip="formatTooltip"
               @input="inputSlider" />
</template>

<script lang="ts" setup>
    import { onMounted, ref } from 'vue'
    import { ElScrollbar } from 'element-plus'

    const max = ref(0)
    const value = ref(0)
    const innerRef = ref<HTMLDivElement>()
    const scrollbarRef = ref<InstanceType<typeof ElScrollbar>>()

    onMounted(() => {
        max.value = innerRef.value!.clientHeight - 380
    })

    const inputSlider = (value: number) => {
        scrollbarRef.value!.setScrollTop(value)
    }
    const scroll = ({ scrollTop }) => {
        value.value = scrollTop
    }
    const formatTooltip = (value: number) => {
        return `${value} px`
    }
</script>

<style scoped>
    .scrollbar-demo-item {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 200px;
        margin: 10px;
        text-align: center;
        border-radius: 4px;
        background: var(--el-color-primary-light-9);
        color: var(--el-color-primary);
        width: 200px;
        border:5px solid #0094ff;
    }

    .el-slider {
        margin-top: 20px;
    }
</style>

四、官方资料中的各参数说明

Attributes

属性名 说明 类型 默认值
height 滚动条高度 string / number
max-height 滚动条最大高度 string / number
native 是否使用原生滚动条样式 boolean false
wrap-style 包裹容器的自定义样式 string / object
wrap-class 包裹容器的自定义类名 string
view-style 视图的自定义样式 string / object
view-class 视图的自定义类名 string
noresize 不响应容器尺寸变化,如果容器尺寸不会发生变化,最好设置它可以优化性能 boolean false
tag 视图的元素标签 string div
always 滚动条总是显示 boolean false
min-size 滚动条最小尺寸 number 20

Events

事件名 说明 类型
scroll 当触发滚动事件时,返回滚动的距离 Function

Slots

插槽名 说明
default 自定义默认内容

Exposes

名称 说明 类型
handleScroll 触发滚动事件 Function
scrollTo 滚动到一组特定坐标 Function
setScrollTop 设置滚动条到顶部的距离 Function
setScrollLeft 设置滚动条到左边的距离 Function
update 手动更新滚动条状态 Function
wrapRef 滚动条包裹的 ref 对象 object

 五、总结

 1

Element Plus 实例详解(一)__安装设置
2 Element Plus 实例详解(二)___Button 按钮
3 Element Plus 实例详解(三)___Date Picker 日期选择
4 Element Plus 实例详解(四)___Border 边框
5 Element Plus 实例详解(五)___Scrollbar 滚动条
6 Element Plus 实例详解(六)___Progress 进度条
7 Element Plus 实例详解(七)___
8 Element Plus 实例详解(八)___
9 Element Plus 实例详解(九)___
10 Element Plus 实例详解(十)___
11 Element Plus 实例详解(十一)___
12 Element Plus 实例详解(十一)___

         推荐阅读:

31 ​编辑

Element Plus 实例详解(一)___安装设置

30

​​​

Vue3安装配置、开发环境搭建(组件安装卸载)(图文详细)
29 ​​​​​​

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

28 ​​​​​​

查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

27 bba02a1c4617422c9fbccbf5325850d9.png​​​​​​

别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(1)

26 fea225cb9ec14b60b2d1b797dd8278a2.png​​​​​​

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

25 1f53fb9c6e8b4482813326affe6a82ff.png​​​​​​

2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

24 6176c4061c72430eb100750af6fc4d0e.png​​​​​​

HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

23 17b403c4307c4141b8544d02f95ea06c.png​​​​​​

​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

22 5d409c8f397a45c986ca2af7b7e725c9.png​​​​​​

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)

21 0a4256d5e96d4624bdca36433237080b.png​​​​​​

python爱心源代码集锦(18款)

20 4d9032c9cdf54f5f9193e45e4532898c.png​​​​​​

巴斯光年python turtle绘图__附源代码

19 074cd3c255224c5aa21ff18fdc25053c.png​​​​​​

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

18 daecd7067e7c45abb875fc7a1a469f23.png​​​​​​

​草莓熊python turtle绘图代码(玫瑰花版)附源代码

17 fe88b78e78694570bf2d850ce83b1f69.png​​​​​​

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

16 c5feeb25880d49c085b808bf4e041c86.png​​​​​​

皮卡丘python turtle海龟绘图(电力球版)附源代码

15 38266b5036414624875447abd5311e4d.png​​​​​​

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

14 03ed644f9b1d411ba41c59e0a5bdcc61.png​​​​​​

草莓熊python turtle绘图(风车版)附源代码

13 09e08f86f127431cbfdfe395aa2f8bc9.png​​​​​​

用代码过中秋,python海龟月饼你要不要尝一口?

12 40e8b4631e2b486bab2a4ebb5bc9f410.png​​​​​​

《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

11 938bc5a8bb454a41bfe0d4185da845dc.jpeg​​​​​​

用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

10 0f09e73712d149ff90f0048a096596c6.png​​​​​​

Python函数方法实例详解全集(更新中...)

9 93d65dbd09604c4a8ed2c01df0eebc38.png​​​​​​

matplotlib 自带绘图样式效果展示速查(28种,全)

8 aa17177aec9b4e5eb19b5d9675302de8.png​​​​​​

手机屏幕坏了____怎么把里面的资料导出(18种方法)

7 1750390dd9da4b39938a23ab447c6fb6.jpeg​​​​​​

2023年3月TIOBE 指数头条:编程语言 Go 进入 TIOBE 指数前 10 名,多家权威机构____编程语言排行榜__薪酬状

6 dc8796ddccbf4aec98ac5d3e09001348.jpeg​​​​​​

Python中Print()函数的用法___实例详解(全,例多)

5 1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg​​​​​​

色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

4 80007dbf51944725bf9cf4cfc75c5a13.png​​​​​​

Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

3 c6374d75c29942f2aa577ce9c5c2e12b.png​​​​​​

Tomcat 启动闪退问题解决集(八大类详细)

2 5218ac5338014f389c21bdf1bfa1c599.png​​​​​​

Tomcat端口配置(详细)

1 fffa2098008b4dc68c00a172f67c538d.png​​​​​​

tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Element Plus 实例详解(五)___Scrollbar 滚动条 的相关文章

随机推荐

  • 使用yolov7模型用VOC深度学习

    yolov7及VOC数据集 权重文件地址 bubbliiiing yolov7 pytorch 这是一个yolov7的库 可以用于训练自己的数据集 github com 在colab中 训练 1 voc annotation py 如果使用
  • Python 判断数组list是否为空

    前言 判断数组为空 是一个常见用法 Python与Java的方法不同 需区分 Python 方法 1 根据长度判断 长度为0时 表示空 其中 判断条件 成立时 非零 则执行后面的语句 lst if len lst print c else
  • 如何在mybatis 中传多个参数,如何在mybatis 中遍历 集合?

    如何在mybatis 中传多个参数 List getIdByRand Param question Question question Param sectionIdList List sectionIdList param 映射参数到 x
  • .NET的RulesEngine(规则引擎)使用

    本文目录 1 背景说明 1 1 规则引擎的使用场景 1 2 demo的代码说明 2 演示 2 1 入门demo演示 2 1 1 代码展示 2 1 2 代码下载 2 2 规则参数说明 2 2 1 第一部分参数说明 2 2 2 第二部分参数说明
  • 2021.9.5笔试题

    第一题 题目 找x y target 数字特别大 可能会溢出 代码 include
  • CPU 100%问题排查

    1 top c top c 命令找出当前进程的运行列表 按一下 P 可以按照CPU使用率进行排序 显示Java进程 PID 为 2609 的java进程消耗最高 2 top Hp pid 然后我们需要根据PID 查出CPU里面消耗最高的进程
  • sklearn的make_circles和make_moons生成数据

    关于make circles and make moons生成环形形状和月亮形状数据 转载来源 https blog csdn net dataningwei article details 53649330 make circles sk
  • ConcurrentHashMap源码解读

    曾经研究过jkd1 5新特性 其中ConcurrentHashMap就是其中之一 其特点 效率比Hashtable高 并发性比hashmap好 结合了两者的特点 集合是编程中最常用的数据结构 而谈到并发 几乎总是离不开集合这类高级数据结构的
  • 儿童计算机诈骗案例,妈妈用纸箱为4岁女儿做笔记本电脑走红 小孩子这么好骗吗?...

    原标题 妈妈用纸箱为4岁女儿做笔记本电脑走红 小孩子这么好骗吗 来源 游民星空 在全球大隔离的状态下 单身生活的人可能会感到孤独无聊 但是已经有孩子的家长可能逐渐的要抓狂了 每天精力旺盛的孩子们可能会吵的你无法在家工作甚至休息 于是就开始变
  • 百度飞桨图像分割七日打卡营学习笔记

    百度飞桨图像分割七日打卡营学习笔记 来源 飞桨图像分割教程 课程链接https aistudio baidu com aistudio course introduce 1767 1 语义分割概念 图像分割是计算机视觉中除了分类和检测外的另
  • java项目抠图功能实现

    java项目抠图功能 项目中需要一个上传文字签名并且抠掉背景图的功能 当初第一次听到这个需求时 差点惊掉下巴 我压根都不会觉得java里能实现这功能 但是既然客户需要 那就照办吧 经过这次功能的实现 我也更加坚定了一个想法 再奇葩的需求 也
  • win 11bitlocker恢复密匙一般情况的解决方式(这里指的是你现在使用的微软账户一直没有变更过)

    本来没有打算写这一篇解决帖子的 但是最近好多微博的友友都在私我询问解决方法 孩子虽然很热心 但是真的回复不过来了 打字太累了 这里给大家简单指个路 希望能够对大家有所帮助 当时出现这个问题的时候 一搜网上的解决方法都是重装系统什么的 真是吓
  • flink学习之state

    state作用 保留当前key的历史状态 state用法 ListState
  • 关于Socket通信客户端是否需要绑定端口号

    参见http blog chinaunix net uid 23193900 id 3199173 html 无连接的socket的客户端和服务端以及面向连接socket的服务端通过调用bind函数来配置本地信息 使用bind函数时 通过将
  • C++输出二进制数

    示例 include
  • Lattice Diamond安装

    1 下载 到Lattice官网 http www latticesemi com 注册一个lattice的账号后就可以去下载Diamond 登陆后如下图 根据自己系统情况选择对应的版本 我用的是32位win8 Diamond软件安装包和La
  • DenseFusion复现-可以在30系/40系显卡运行

    笔者电脑显卡为4060 因为使用DenseFusion作者pytorch1 0的代码没有成功 发现很多人在30系显卡上复现失败 经过查资料后发现是因为cuda版本与显卡算力不匹配 需要提高cuda版本 因此也需要提高pytorch版本 后来
  • vue动态添加style样式

    注意 凡是有 的style属性名都要变成驼峰式 比如font size要变成fontSize 除了绑定值 其他的属性名的值要用引号括起来 比如backgroundColor 00a2ff 而不是 backgroundColor 00a2ff
  • 数据库服务器操作系统升级方案,PostgreSQL 数据库跨版本升级常用方案解析

    大家好 我是只谈技术不剪发的 Tony 老师 对于企业而言 将数据库系统升级到新版本通常可以获得更好的性能 更多的功能 最新的安全补丁和错误修复等 因此 本文就来介绍一下 PostgreSQL 数据库版本升级的 3 种常用方案 升级方案概述
  • Element Plus 实例详解(五)___Scrollbar 滚动条

    Element Plus 实例详解 五 Scrollbar 滚动条 本文目录 一 前言 二 搭建Element Plus试用环境 1 搭建Vue3项目 基于Vite Vue 2 安装Element Plus 三 Element Plus S