基于slider做时间选择器(三天范围内移动)

本文描述了一个需求,设计一个日期事件界面,时间轴能在指定三天范围内自动调整范围,保持在24小时内。通过计算属性处理滑块拖动,确保刻度在[-24,48]区间内,同时提供两种标记方式。最终展示了如何实现在不同情况下的滑块效果。

先看需求:

  1. 选中日期的历史事件界面,默认显示当前天24小时的时间轴。
  2. 支持往前一天活往后一天拖动时间轴,跨天位置的时间刻度需有明显标记。
  3. 界面上仅需显示24小时刻度,时间轴拖动仅改变显示的时间刻度,比如未拖动前显示的是0~23点,往左拖动5小时后,时间刻度范围显示的就是今天6点到明天5点。

分析需求:
1.在三天范围内,那么我们可以想到最大值和最小值就是在区间[-24,48]之间,那我们可以通过min和max属性来限制最大和最小
2.但是我们在拖动的时间,始终希望刻度在24个小时内,所以最大最小值应该随着滑块的拖动值而变化,那么极限的变化就是最小值: max - 24 , 最大值,min + 24,这样我们始终可以把范围限制在24小时,但是这样就会存在,超出边界的情况
3.结合区间范[-24,48]之间,我们在结合最大和最小值

代码如下

//最小值,由最大值-24l配合上极限范围-24来决定
const selectTimeMin = computed(() => {
   
   
  const max = selectTimevalue.value[1] ?? 24;
  return Math.max(-24, max - 24);
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值