【前端】vue-slider实现可设置选择范围的时间轴

before

一开始用的el-slider,提了这个需求以后开始查文档改,到最后发现,element的slider居然可以样式和绑定的value不一致,会不会是需要强制重新渲染已经不关心了,换了vue-slider,看到了它的范围模式,最后实现了设置不可选范围,将时间轴分两段

vue-slider 官网 范围模式 : https://nightcatsama.github.io/vue-slider-component/#/zh-CN/basics/range

使用:

npm install vue-slider-component --save

import VueSlider from 'vue-slider-component';
import 'vue-slider-component/theme/default.css';
step1:禁止滑块交叉穿越

在这里插入图片描述

<template>
  <div>
    <vue-slider v-model="value" :enable-cross="false"></vue-slider>
  </div>
</template>

<script>
  module.exports = {
   
    components: {
   
      VueSlider
    },
    data: function () {
   
      return {
   
        value: [0, 30],
      }
    }
  }
</script>
step2:禁用第二个滑块

在这里插入图片描述
截图截不到第二个滑块上大大的 cursor: not-allowed 标志。

<template>
  <div>
    <vue-slider v-model="value1" :disabled="true"></vue-slider>
    <vue-slider
      v-model="value2"
      :dot-options="dotOptions"
      :order="false"
    ></vue-slider>
  </div>
</template>

<script>
  module.exports = {
   
    components: {
   
      VueSlider
    },
    data: function () {
   
      return {
   
        value1: 0,
        value2: [0, 50],
        dotOptions: [{
   
          disabled: false
        }, {
   
          disabled: true
        }]
      }
    }
  }
</script>
step3:(隐藏第二个滑块)
::v-deep .vue-slider-dot-disabled {
   
  background: transparent;
  pointer-events: none;
}
::v-deep .vue-slider-dot-handle-disabled {
   
  cursor: auto;
}

加cursor: auto; 屏蔽固定滑块的cursor:not-allowed,不显示禁止符号。
隐藏一个东西 pointer-events: none; 和 background: transparent; 就够了。

完整代码
<template>
  <div class=
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值