el-slider实现滚动条自定义分段颜色
<template>
<el-slider
ref="sliderRef"
class="!w-80%"
style="--el-slider-runway-bg-color: red; --el-slider-main-bg-color: green"
v-model="speedRange"
range
:min="0"
:step="0.1"
:max="50"
size="small"
/>
</template>
<script setup lang="ts">
const sliderRef = ref();
const speedRange = ref([0, 50]);
onMounted(() => {
nextTick(addSliderBarToSlider);
});
/** 增加SliderBar,并增加Style监听 */
const addSliderBarToSlider = () => {
const newsliderBar = document.createElement('div');
newsliderBar.className = 'el-slider__bar';
newsliderBar.style.backgroundColor = 'blue';
newsliderBar.style.right = '0%';
let sliderBar = sliderRef.value.$el.firstElementChild.firstElementChild;
sliderRef.value.$el.firstElementChild.appendChild(newsliderBar);
// 创建一个MutationObserver实例
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.type === 'attributes') {
newsliderBar.style.width = `calc(100% - ${sliderBar.style.width} - ${sliderBar.style.left})`;
}
});
});
// 配置MutationObserver以监听属性变化
observer.observe(sliderBar, {
attributes: true,
attributeFilter: ['style'],
});
};
</script>
<style lang="scss" scoped>
.el-slider {
--el-slider-border-radius: 2px;
--el-slider-height: 4px;
--el-slider-button-size: 14px;
}
</style>
分类:
前端 / Vue学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2022-07-29 WMS服务与WFS服务的优势互补例子之一(点击查询)
2022-07-29 WMS和WFS服务的区别
2022-07-29 OGC 的 WMS、WFS 、WCS等服务