触发方式

点击铅笔展开并聚焦小时输入,修改小时和分钟;点击勾号或 Enter 确认。Escape 撤回到上次确认值并收合,Tab 可切换字段。

起点与终点

初始内容 7 h / 25 min;小时范围 0–24,分钟范围 0–60。默认合拢。合拢时为连续胶囊,展开间距 8px;高度 48px,外圆角不超过高度的一半(设置 12px)。

时序

弹开与收合响应基准 450 ms,解析阻尼弹簧的回弹系数 0.12;时长控制响应节奏,并非精确落稳时间。段间留白、内圆角、输入宽度、轻微摇摆和铅笔到勾号变形同步。

进入与退出

输入负数、小数或超出上限时立即取整并截断到范围,产生短暂轻晃;清空可继续输入,确认后空值记为 0。控件可编辑。配色 light。

重复操作与打断

快速点击从当前弹簧位置与速度接续;工具栏暂停、后台与隐藏预览冻结全部时钟,继续后接续。调整间距、回弹或时长自动演示一次。右侧内容参数实时生效并保存;直接在预览中输入的值、确认记录、焦点、展开进度与观察倍速属于临时状态,不写入 JSON。

减少动态效果

所有编辑状态立即到位,关闭回弹、摇摆、越界轻晃和自动演示收合;输入、确认、撤回与范围校验照常工作。

默认配置

这些数值来自当前维护的默认配置;编辑器草稿和调整后的导出可以不同。

{
  "schemaVersion": 2,
  "recipeId": "duration-picker",
  "durationMs": 450,
  "delayMs": 0,
  "easing": [
    0,
    0,
    1,
    1
  ],
  "offsetX": 0,
  "offsetY": 0,
  "scale": 1,
  "loop": false,
  "interruption": "retarget",
  "tracks": [],
  "durationPicker": {
    "hours": 7,
    "minutes": 25,
    "maxHours": 24,
    "maxMinutes": 60,
    "hoursLabel": "h",
    "minutesLabel": "min",
    "gap": 8,
    "bounce": 0.12,
    "height": 48,
    "radius": 12,
    "theme": "light",
    "defaultEditing": false,
    "disabled": false
  }
}

源码与复用

GitHub 对应示例提供公开渲染源码、默认配置和运行入口。复用前请阅读交互说明,并保留随源码附带的第三方与字体许可;完整网页编辑器由独立工程维护。

用于自己的项目

进入编辑器运行真实预览并比较调整;本说明页不另造一份近似演示。把导出用于自己的项目后,重新检查内容、输入、焦点与布局。

目录来源标注:原创实现. 第三方示例保留自己的许可与署名;公开仓库包含全部当前动效的渲染源码;完整编辑器由独立工程维护。