自定义el-slider 滑块的样式

最近用到了element组件中的滑块,翻看了官网和网上一些案例,感觉和我要的样式都不太一样,下面记录一下我用到的两种自定义滑块。

效果图

第一种自定义画过的间断点样式

起始样式

image.png

滑动的样式

image.png

第二种自定义拖动滑块的样式

起始样式

image.png

滑动的样式

image.png

自定义画过的间断点样式的实现

<template><div class="d-flex align-items-start"><div class="search-item-label" style="line-height: 38px;">公网带宽</div><div class="d-flex align-items-center"><el-sliderclass="ml-1 mr-4":class="{'activeSlider0' : state.netBrandWidth > 0,'activeSlider1' : state.netBrandWidth > 50, 'activeSlider2' : state.netBrandWidth > 100, 'activeSlider3' : state.netBrandWidth > 150, 'activeSlider4' : state.netBrandWidth > 200}" // 滑动到不同位置时添加不同的classname,来定义滑动过后的样式v-model="state.netBrandWidth":min="0":max="200":marks="netBrandWidthMarks"  // 标记:format-tooltip="netBrandWidthFormatterTooltip" // 滑动快hover时上方显示文字style="width: 416px"></el-slider></div></div>
</template>
<script setup>
import { reactive, ref } from 'vue'
const state = reactive({netBrandWidth: 1
})
const netBrandWidthMarks = ref({ // 标记0: '0M',50: '50M',100: '100M',150: '150M',200: '200M'
})
// 公网带宽
const netBrandWidthFormatterTooltip = (value) => { // 滑动快hover时上方显示文字return value > 0 ? `${ value }Mbps` : '无公网'
}
</script>
<style scoped lang="scss">
.el-slider__runway{ // 滑块的进度条颜色background-color: #F2F3F7;
}
.el-slider__stop { // 进度条上间断点的样式width: 10px;height: 10px;top: -2px;background: #FFFFFF;border: 1px dotted #4C66CE;box-sizing: border-box;
}.el-slider__button { // 拖动的滑块的样式width: 16px;height: 16px;background-color: #FFFFFF;box-shadow: 0px 0px 4px 0px rgba(64,83,159,0.73);border: 3px solid #4C66CE;
}
.el-slider__marks-text{ // 底部标记的样式font-size: 12px;color: #999999;
}
.activeSlider0 .el-slider__runway{ // 滑动到不同位置时添加不同的classname,来定义滑动过后的样式.el-slider__stop:first-child{ // 间断点样式background-color: #4C66CE;}
}
.activeSlider1 .el-slider__runway{.el-slider__stop:first-child,.el-slider__stop:nth-child(2){background-color: #4C66CE;}
}
.activeSlider2 .el-slider__runway{.el-slider__stop:first-child,.el-slider__stop:nth-child(2),.el-slider__stop:nth-child(3){background-color: #4C66CE;}
}
.activeSlider3 .el-slider__runway{.el-slider__stop:first-child,.el-slider__stop:nth-child(2),.el-slider__stop:nth-child(3),.el-slider__stop:nth-child(4){background-color: #4C66CE;}
}
.activeSlider4 .el-slider__runway{.el-slider__stop:first-child,.el-slider__stop:nth-child(2),.el-slider__stop:nth-child(3),.el-slider__stop:nth-child(4),.el-slider__stop:nth-child(5){background-color: #4C66CE;}
}
</style>

自定义拖动滑块样式的实现

<template><div class="d-flex align-items-start"><div class="search-item-label" style="line-height: 38px;">公网带宽</div><div class="d-flex align-items-center"><el-sliderclass="ml-1 mr-4"v-model="state.netBrandWidth":min="0":max="200":marks="netBrandWidthMarks"  // 标记:format-tooltip="netBrandWidthFormatterTooltip" // 滑动快hover时上方显示文字style="width: 416px"></el-slider></div></div>
</template>
<script setup>
import { reactive, ref } from 'vue'
const state = reactive({netBrandWidth: 1
})
const netBrandWidthMarks = ref({ // 标记0: '0M',50: '50M',100: '100M',150: '150M',200: '200M'
})
// 公网带宽
const netBrandWidthFormatterTooltip = (value) => { // 滑动快hover时上方显示文字return value > 0 ? `${ value }Mbps` : '无公网'
}
</script>
<style scoped lang="scss">
.el-slider__stop { // 进度条上间断点的样式border: 1px solid var(--el-color-primary);box-sizing: border-box;
}.el-slider__button { // 拖动的滑块的样式width: 16px;height: 22px;border: 1px solid var(--el-color-primary);border-radius: 1px;position: relative;left: 4px;
}.el-slider__button:before { content: '';display: block;position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);width: 3px;height: 6px;background: transparent;box-shadow: -3px 0 0 -1px var(--el-color-primary), 3px 0 0 -1px var(--el-color-primary);
}.el-slider__button:after {content: '';display: block;position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);width: 1px;height: 7px;background: var(--el-color-primary);z-index: 999;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/52937.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

Django学习记录&#xff1a;使用ORM操作MySQL数据库并完成数据的增删改查 数据库操作 MySQL数据库pymysql Django开发操作数据库更简单&#xff0c;内部提供了ORM框架。 安装第三方模块 pip install mysqlclientORM可以做的事&#xff1a; 1、创建、修改、删除数据库中的…

用指定的字符将数组中各元素填充至指定长度(填充在左侧或右侧)numpy.char.ljust();numpy.char.rjust()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 用指定的字符将数组中各元素 填充至指定长度(填充在左侧或右侧) numpy.char.ljust()&#xff1b;numpy.char.rjust() 下列代码最后输出的结果是&#xff1f; import numpy as np s np.array(…

【阵列信号处理】空间匹配滤波器、锥形/非锥形最佳波束成形器、样本矩阵反演 (SMI) 研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【LeetCode 75】第十九题(724)寻找数组的中心下标

目录 题目: 示例: ​分析: 代码运行结果: 题目: 示例: 分析: 给一个数组,让我们找出一个下标,在这个下标左边的元素总和等于这个下标右边的元素总和. 我们可以把整个数组的总和求出来,然后再从左往右遍历一次数组,遍历的同时将遍历过的数累加记录到一个变量中.若遍历到一…

【css】css设置表格样式-边框线合并

<style> table, td, th {border: 1px solid black;//设置边框线 }table {width: 100%; }td {text-align: center;//设置文本居中 } </style> </head> <body><table><tr><th>Firstname</th><th>Lastname</th><t…

MongoDB文档-基础使用-在客户端(dos窗口)/可视化工具中使用MongoDB基础语句

阿丹&#xff1a; 本文章将描述以及研究mongodb在客户端的基础应用以及在spring-boot中整合使用mongodb来完成基本的数据增删改查。 先放官方的文章 MongoDB CRUD操作 - MongoDB-CN-Manual 本文章分为&#xff1a; 在客户端&#xff08;dos窗口&#xff09;/可视化工具中使用…

【docker】docker-compose服务编排

目录 一、服务编排概念二、docker compose2.1 定义2.2 使用步骤2.3 docker-compose安装2.4 docker-compose卸载 三、编排示例 一、服务编排概念 1.微服务架构的应用系统中一般包含若干个微服务&#xff0c;每个微服务一般都会部署多个实例&#xff0c;如果每个微服务都要手动启…

通过MySQL删除Hive元数据信息

之前遇到过一个问题&#xff0c;在进行Hive的元数据采集时&#xff0c;因为Hive表的文件已经被删除了&#xff0c;当时是无法删除表&#xff0c;导致元数据采集也发生了问题&#xff0c;所以希望通过删除Hive表的元数据解决上述问题。 之前安装时&#xff0c;经过特定的配置后…

Cocos creator(2d) 使用 shader + uv 实现单张图片衔接滚动效果

在游戏中&#xff0c;当我们需要让背景图片无缝衔接无限滚动时(打飞机这种背景一直滚动&#xff0c;或者肉鸽游戏地图一直在走等等)&#xff0c;通常的做法是 在游戏中放两个背景node&#xff0c;在update中控制这两张背景图片的移动&#xff0c;并让其收尾衔接即可。(具体代码…

【LeetCode 75】第十七题(1493)删掉一个元素以后全为1的最长子数组

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码运行结果&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给一个数组&#xff0c;求删除一个元素以后能得到的连续的最长的全是1的子数组。 我们可以先单独统计出连续为1的子数组分别长度…

在线五子棋对战

目录 数据管理模块&#xff08;数据库设计&#xff09; 前端界面模块 业务处理模块 会话管理模块网络通信模块(session,cookie) 在线管理模块 房间管理模块 用户匹配模块 项目扩展 数据管理模块&#xff08;数据库设计&#xff09; 数据库中有可能存在很多张表&#xf…

【深度学习】在 MNIST实现自动编码器实践教程

一、说明 自动编码器是一种无监督学习的神经网络模型&#xff0c;主要用于降维或特征提取。常见的自动编码器包括基本的单层自动编码器、深度自动编码器、卷积自动编码器和变分自动编码器等。 其中&#xff0c;基本的单层自动编码器由一个编码器和一个解码器组成&#xff0c;编…