0

我在 javascript 中创建了一个应用程序,用户单击一个按钮启动计时器,按下一系列按钮,然后单击另一个按钮停止计时器。每个按钮被点击的时间以毫秒为单位记录,值被收集在一个数组中。这一切都很好。

下一部分是我遇到麻烦的地方。我想在时间轴中显示数组的值。我有一个脚本,它获取设置为 100% 宽的 div 的宽度。此宽度因用户使用的设备的分辨率而异。我需要做的是创建一个公式,根据我的 div 的宽度将存储在我的数组中的毫秒值缩放为适当的值。

For reference:
//Here's my array:
counterbArray = counterbString.split(", ");
counterbArrayL = [counterbArray.length];

//Getting width of div:
var timelinewidth = $("#timeline").width();

//Plotting the points as images:
for (i=1; i<(counterbArrayL); i++)
    {
    document.getElementById('timeline').innerHTML =     document.getElementById('timeline').innerHTML + "<img src='event.gif' width='16' height='15' class='plot' style='left:" + *each value from formula here* + "px' >";         
    }

谢谢!

4

1 回答 1

0

您还需要包含用户单击停止时间的变量。

var timeofstop = *****;

counterbArray = counterbString.split(", ");
counterbArrayL = [counterbArray.length];

//Getting width of div:
var timelinewidth = $("#timeline").width();

var currentleft;

//Plotting the points as images:
for (var i = 0; i < counterbArrayL; i++) {

    currentleft = Math.round((counterbArray[i] / timeofstop) * timelinewidth);

    document.getElementById('timeline').innerHTML = document.getElementById('timeline').innerHTML + "<img src='event.gif' width='16' height='15' class='plot' style='left:" + currentleft + "px' >";
}

如果要使图像居中,您可能还想从 currentleft 中减去 8。

于 2012-09-07T13:03:20.727 回答