Element中el-slider设置刻度及数字

效果图:

 

<div class="AxisData">
      <el-slider
        class="self_slider"
        v-model="value"
        :max="31"
        :min="1"
        :marks="marks"
        :show-tooltip="false"
      >
      </el-slider>
</div>
export default {
  data() {
    return {
      value: 0,
    };
  },
  computed: {
    marks() {
      let marks = {};
      for (let i = 0; i <= 31; i++) {
        if (i % 1 == 0) {
          marks[i] = i + "";
        }
      }
      return marks;
    },
  },
};
.AxisData {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 25%;
  border: 1px solid black;
}
.el-slider {
  width: 90%;
}

>>> .el-slider__runway {
  position: absolute;
  width: 40%;
  height: 3%;
  bottom: 41%;
  border: none;
  margin: 0;
  background-color: transparent;
  background-image: linear-gradient(
    to right,
    rgb(142, 169, 250) 50%,
    transparent 50%
  );
  background-size: 0.5% 40%;
  background-position: bottom;
  background-repeat: repeat-x;
}
>>> .el-slider__bar {
  background-color: transparent;
}
>>> .el-slider__stop {
  position: absolute;
  bottom: 0;
  height: 80%;
  width: 0.15%;
  border-radius: 0%;
  background: rgb(142, 169, 250);
}

>>> .el-slider__marks-text {
  margin-top: 0;
  top: -50%;
  color: #3633d8;
  font-size: 100%;
}

>>> .el-slider__button-wrapper {
  width: 1.5em;
  height: 1.5em;
  z-index: 1;
}
>>> .el-slider__button {
  position: absolute;
  left: 0;
  bottom: -100%;
  width: 100%;
  height: 100%;
  border: none;
  background-color: transparent;
  background-image: radial-gradient(
    #e47621 45%,
    transparent 45%,
    transparent 65%,
    #e47621 65%
  );
}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 HTML、CSSJavaScript 实现一个类似 Element UI 的滑块组件。以下是一个简单的示例: HTML: ``` <div class="el-slider"> <div class="el-slider__bar"></div> <div class="el-slider__button"></div> </div> ``` CSS: ``` .el-slider { position: relative; height: 6px; width: 100%; background-color: #e5e5e5; } .el-slider__bar { position: absolute; top: 50%; transform: translateY(-50%); height: 2px; width: 100%; background-color: #409EFF; } .el-slider__button { position: absolute; top: 50%; left: 0; transform: translateY(-50%); height: 16px; width: 16px; border-radius: 50%; background-color: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); cursor: pointer; } ``` JavaScript: ``` const slider = document.querySelector('.el-slider'); const bar = slider.querySelector('.el-slider__bar'); const button = slider.querySelector('.el-slider__button'); let isDragging = false; function updateButtonPosition(percent) { button.style.left = `${percent}%`; } function updateBarWidth(percent) { bar.style.width = `${percent}%`; } function updateValue(percent) { const min = parseFloat(slider.getAttribute('data-min')) || 0; const max = parseFloat(slider.getAttribute('data-max')) || 100; const value = (max - min) * percent / 100 + min; slider.setAttribute('data-value', value); slider.dispatchEvent(new Event('input')); } function handleMouseDown(event) { isDragging = true; } function handleMouseMove(event) { if (isDragging) { const rect = slider.getBoundingClientRect(); const percent = Math.max(0, Math.min(100, (event.clientX - rect.left) / rect.width * 100)); updateButtonPosition(percent); updateBarWidth(percent); updateValue(percent); } } function handleMouseUp(event) { isDragging = false; } button.addEventListener('mousedown', handleMouseDown); document.addEventListener('mousemove', handleMouseMove); document.addEventListener('mouseup', handleMouseUp); ``` 以上代码实现了一个基本的滑块组件,可以拖动滑块按钮来改变其值,并且会触发 `input` 事件。需要注意的是,这里使用了 `data-min` 和 `data-max` 属性来设置滑块的最小值和最大值,使用了 `data-value` 属性来设置当前的值(通过 `input` 事件更新)。可以在 HTML 动态设置这些属性来初始化滑块组件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值