如何计算Timeline组件的间隔宽度(像素单位)?
如何计算时间线(Timeline)间隔的像素宽度?

我在使用Timeline插件时配置了以下选项:
container: "#wave-timeline", height: 40, timeInterval: this.timeInterval, secondaryLabelInterval: 1,
对应的timeInterval函数:
function timeInterval(pxPerSec) { return (200 / pxPerSec) }
说明:我为该时间线添加了缩放功能。
从现有代码逻辑可以直接推导时间线间隔的像素宽度:
- 先明确参数含义:
pxPerSec是时间线缩放后每1秒对应的像素宽度。 - 你的
timeInterval函数返回的是「时间间隔的秒数」,公式200 / pxPerSec的核心逻辑是让时间间隔的像素宽度固定为200px——因为时间间隔秒数 × 每秒像素数 = (200/pxPerSec) × pxPerSec = 200px,不管缩放级别怎么变化,这个像素宽度都保持恒定。
如果需要自定义或动态计算像素宽度,可以遵循以下逻辑:
- 若希望时间间隔像素宽度为
W,则时间间隔秒数应设置为W / pxPerSec; - 若已知时间间隔秒数为
T,对应的像素宽度就是T × pxPerSec。
举个实际例子:
当缩放后pxPerSec为50(即1秒对应50px),代入你的函数得到时间间隔为4秒,对应的像素宽度就是4×50=200px,完全符合预期。
内容的提问来源于stack exchange,提问作者rook
相关产品推荐
相关产品推荐

