当前位置: 首页 > article >正文

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

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是否使用原生滚动条样式booleanfalse
wrap-style包裹容器的自定义样式string / object
wrap-class包裹容器的自定义类名string
view-style视图的自定义样式string / object
view-class视图的自定义类名string
noresize不响应容器尺寸变化,如果容器尺寸不会发生变化,最好设置它可以优化性能booleanfalse
tag视图的元素标签stringdiv
always滚动条总是显示booleanfalse
min-size滚动条最小尺寸number20

Events

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

Slots

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

Exposes

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

 五、总结

 1

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

         推荐阅读:

31

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

30

​​​

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

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

28​​​​​​

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

27bba02a1c4617422c9fbccbf5325850d9.png​​​​​​

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

26fea225cb9ec14b60b2d1b797dd8278a2.png​​​​​​

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

251f53fb9c6e8b4482813326affe6a82ff.png​​​​​​

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

246176c4061c72430eb100750af6fc4d0e.png​​​​​​

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

2317b403c4307c4141b8544d02f95ea06c.png​​​​​​

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

225d409c8f397a45c986ca2af7b7e725c9.png​​​​​​

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

210a4256d5e96d4624bdca36433237080b.png​​​​​​

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

204d9032c9cdf54f5f9193e45e4532898c.png​​​​​​

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

19074cd3c255224c5aa21ff18fdc25053c.png​​​​​​

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

18daecd7067e7c45abb875fc7a1a469f23.png​​​​​​

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

17fe88b78e78694570bf2d850ce83b1f69.png​​​​​​

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

16c5feeb25880d49c085b808bf4e041c86.png​​​​​​

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

1538266b5036414624875447abd5311e4d.png​​​​​​

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

1403ed644f9b1d411ba41c59e0a5bdcc61.png​​​​​​

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

1309e08f86f127431cbfdfe395aa2f8bc9.png​​​​​​

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

1240e8b4631e2b486bab2a4ebb5bc9f410.png​​​​​​

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

11938bc5a8bb454a41bfe0d4185da845dc.jpeg​​​​​​

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

100f09e73712d149ff90f0048a096596c6.png​​​​​​

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

993d65dbd09604c4a8ed2c01df0eebc38.png​​​​​​

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

8aa17177aec9b4e5eb19b5d9675302de8.png​​​​​​

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

71750390dd9da4b39938a23ab447c6fb6.jpeg​​​​​​

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

6dc8796ddccbf4aec98ac5d3e09001348.jpeg​​​​​​

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

51ab685d264ed4ae5b510dc7fbd0d1e55.jpeg​​​​​​

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

480007dbf51944725bf9cf4cfc75c5a13.png​​​​​​

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

3c6374d75c29942f2aa577ce9c5c2e12b.png​​​​​​

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

25218ac5338014f389c21bdf1bfa1c599.png​​​​​​

Tomcat端口配置(详细)

1fffa2098008b4dc68c00a172f67c538d.png​​​​​​

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


http://www.kler.cn/a/5118.html

相关文章:

  • 设计模式-结构型-组合模式
  • QT自定义工具条渐变背景颜色一例
  • 运放输入偏置电流详解
  • Selenium 的四种等待方式及使用场景
  • SpringCloud系列教程:微服务的未来(十)服务调用、注册中心原理、Nacos注册中心
  • Nature Electronics——近传感器计算:50 nm异构集成技术的革命
  • 语句【C++】
  • linux创建守护进程
  • Mybatis(一)-------
  • shell 脚本之一键部署安装 Nginx
  • 并查集和哈希表的实现
  • 【Python】线程
  • java企业级信息系统开发学习笔记02初探spring——利用组件注解符精简spring配置文件
  • 第14章_MySQL事务日志
  • 2009年9月Java全国计算机等级考试二级笔试试卷
  • 可用的公开 RTSP/ RTMP 在线视频流资源地址(亲测可行)
  • python去掉字符串中的指定字符的方法
  • 《代码实例》Vue组件与路由
  • 蓝桥杯刷题冲刺 | 倒计时9天
  • 企业安全现状与未来趋势如何?
  • 软件测试方法下篇(正交法、场景设计法、错误猜测法)
  • Go工程基础知识
  • 论文阅读 | End-to-End Learning of Representations for Asynchronous Event-Based Data
  • Python轻量级Web框架Flask(2)——Flask模板渲染/Flask项目拆分
  • Intel Pin常用基础函数
  • Java设计模式-7、装饰器模式