当前位置: 首页 > ds >正文

实现滑动选择器从离散型的数组中选择

1.使用原生的input

详细代码如下:

<template><div class="slider-container"><!-- 滑动条 --><inputtype="range"v-model.number="sliderIndex":min="0":max="customValues.length - 1"step="1"class="custom-slider"/><!-- 均分刻度 --><div class="marks"><div v-for="(value, index) in customValues":key="index"class="mark":style="{ left: getVisualPosition(index) + '%' }"><div class="mark-line"></div><div class="mark-label">{{ value }}</div></div></div><p>当前值: {{ currentValue }}</p></div>
</template><script>
export default {data() {return {customValues: [0, 0.1, 0.2, 1, 5, 10, 30, 50, 100],sliderIndex: 0};},computed: {currentValue() {return this.customValues[this.sliderIndex]; }},methods: {getVisualPosition(index) {return (index / (this.customValues.length - 1)) * 100; }}
};
</script><style scoped>
.slider-container {position: relative;width: 80%;margin: 20px auto;
}.custom-slider{margin:0;
}.custom-slider {width: 100%;
}.marks {position: relative;height: 20px;
}.mark {position: absolute;transform: translateX(-50%);text-align: center;
}.mark-line {width: 2px;height: 8px;background: #666;margin: 0 auto;
}.mark-label {font-size: 12px;color: #666;margin-top: 4px;
}
</style>

2.使用elementplus实现

代码如下:

<template><el-slider style='width:60%;margin: 0 auto;' v-model="currentValue" :min="0" :max="marksRange":step="1" :format-tooltip="formatTooltip" /><div style="margin-top:30px;text-align:center;">当前选中的值:{{ presetValues[currentValue] }}</div>
</template><script lang="ts" setup>
import { ref, computed } from 'vue'// 预设的非线性数值
const presetValues: Array<number> = [0, 0.1, 0.2, 1, 5, 10, 30, 50, 100]
// 计算视觉均分跨度
const marksRange = presetValues.length - 1
// 当前选中的下标
const currentValue = ref<number>(0)// 自定义提示格式化
const formatTooltip = (value: number) => {return presetValues[Math.round((value / marksRange) * (presetValues.length - 1))]
}
</script>

http://www.xdnf.cn/news/4388.html

相关文章:

  • Prometheus的安装部署
  • create-vue搭建Vue3项目(Vue3学习2)
  • Transformer面经
  • JavaScript性能优化实战:从瓶颈分析到解决方案
  • 0-带在线搜索和自适应的尺度组合优化神经改进启发式算法(未完)(code)
  • 连接mysql时 Public Key Retrieval is not allowed 问题
  • 前端面试每日三题 - Day 26
  • RabbitMQ 添加新用户和配置权限
  • 龙虎榜——20250506
  • python的selenium操控浏览器
  • k8s service的类型
  • 如何选择 边缘计算服务器
  • HPE推出零信任网络与私有云运维解决方案
  • javaweb-Filter
  • 黄金量化:高频实时的贵金属API
  • Python实现NOA星雀优化算法优化Catboost回归模型项目实战
  • 京东(JD)API 商品详情数据接口讲解及 JSON 示例
  • el-row el-col
  • 【基于SSM+Vue+Mysql】健身房俱乐部管理系统(附源码+数据库脚本)
  • 大模型系列(三)--- GPT1论文研读
  • ETL交通行业案例丨某大型铁路运输集团ETL数据集成实践
  • shell-流程控制-循环-函数
  • Spring Boot操作MongoDB的完整示例大全
  • 4.29 tag的完整实现和登录页面的初步搭建
  • 【Pandas】pandas DataFrame agg
  • 优化算法 - intro
  • window 显示驱动开发-线程和同步级别为零级
  • Git仓库基本操作
  • Spark 的 Shuffle 机制:原理与源码详解
  • 内网im软件,支持企业云盘的协同办公软件推荐