網站首頁 編程語言 正文
-
先看效果圖
-
自定義兩個內容:
- 提示信息一直顯示
- 自定義間斷點樣式
-
代碼如下
<template>
<div class="content">
<div class="my-slider">
<div class="my-slider__tooltip" :style="style">
<el-button
class="my-slider__tooltip-wrapper"
size="mini"
type="text"
>
{{ curTime }}
</el-button>
</div>
<el-slider v-model="value" :min="min" :max="max" :show-tooltip="false" @input="onlyChangeTime" :marks="setMarker"></el-slider>
</div>
</div>
</template>
<script>
import moment from 'moment'
export default {
data(){
return {
value:0,//model
min:0,//最小值
max:3600,//最大值
timeData:[],//數據list
curTime:''//上方tip展示
}
},
created(){
// 模擬一小時數據
var today = moment().format("YYYY-MM-DD")+" 00:00:00";
var start = new Date(today).getTime();
var timeRange = [];
for(var i=0;i<=3600;i++){
timeRange.push(start+i*1000)
}
this.timeData = timeRange;
},
computed:{
// 時間軸的點
setMarker() {
// 模擬每300個點加分割線
let marks = {};
for (let i = 0; i <= 3600; i++) {
if (i % 300 == 0) {
marks[i] = {
label: this.$createElement('span', moment(this.timeData[i]).format("HH:mm:ss"))
};
}
}
return marks;
},
// tip距離左側百分比
style() {
let length = this.max - this.min;
let progress = this.value - this.min;
let left = length == 0?0:progress / length * 100;
return {
paddingLeft: `${left}%`,
}
},
},
methods:{
//拖拽進度條修改時間
onlyChangeTime(v) {
this.curTime = moment(this.timeData[v]).format("HH:mm:ss");
}
}
}
</script>
<style lang="less">
.content{
color: #fff;
background: rgba(26,37,58,0.5);
}
.my-slider{
position: relative;
width: calc(100% - 400px);
height: 160px;
margin: 0 auto;
font-size: 12px;
.my-slider__tooltip {
text-align: left;
position: absolute;
top: 16px;
left: -20px;
.my-slider__tooltip-wrapper {
height: 32px;
background: transparent;
border: none;
color: #fff;
cursor: unset;
}
}
}
.el-slider{
box-sizing: border-box;
position: absolute;
width: 100%;
top: 60px;
}
.el-slider__runway{
background-color: #fff;
}
.el-slider__bar{
background: rgba(150,221,105,1);
}
.el-slider__button{
border:2px solid rgba(150,221,105,1);
background: rgba(150,221,105,1);
}
.el-slider__stop{
visibility: hidden;
}
.el-slider__button-wrapper{
position: relative;
top: -6px;
&::after{
content: '';
width: 1px;
height: 36px;
position: absolute;
top: -30px;
left: 18px;
border-right: 1px solid #96DD69;
}
}
.el-slider__marks-text {
margin-top: -4px;
transform: translateX(0);
&::after{
content: '';
width: 1px;
height: 24px;
position: absolute;
top: -40px;
left: -2px;
border-right: 1px solid #fff;
}
span{
position: absolute;
left: -26px;
color: #fff;
}
}
</style>
原文鏈接:https://blog.csdn.net/a736755244/article/details/119791076
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-03-14 has been blocked by CORS policy: Response to prefl
- 2024-01-07 SpringSecurity Oauth2 解決 The bean ‘metaDataSourceA
- 2022-07-28 詳解Python中4種超參自動優化算法的實現_python
- 2022-08-19 React組件通信
- 2022-06-06 PowerShell yarn : 無法加載文件 C:\Users\Admin\AppData\Ro
- 2022-11-16 python?中collections的?deque使用詳解_python
- 2022-11-01 Flask路由尾部有沒有斜杠有什么區別_python
- 2022-08-23 Python腳本提取fasta文件單序列信息實現_python
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支