在我的软件中,我有一个扩展查看器,可以将页面彼此对齐。页数可以变化。用户可以在这些页面上放置注释。我希望能够通过将x坐标与页面宽度的总和进行比较来确定添加注释的页面。
对于这个例子,假设我有4页的传播。我构建了一个具有以下值的js数组widthArr[]
:[297, 300, 305, 410]
当然,以下是真的
widthArr[0] = 297 //page 1 width
widthArr[1] = 300 //page 2 width
widthArr[2] = 305 //page 3 width
widthArr[3] = 410 //page 4 width
因此,如果x坐标为400,那么我将知道该笔记正放在第2页上。
有没有办法可以动态循环浏览这些页面并以某种方式检查x是否大于以前所有页面宽度的宽度?
我需要在这个特定场景中检查以下内容:
x > (widthArr[0] + widthArr[1] + widthArr[2])
?然后,用户正在向第4页添加注释。
x > (widthArr[0] + widthArr[1])
?然后用户正在向第3页添加注释。
x > widthArr[0]
?然后用户正在向第2页添加注释。如果没有,则用户正在向第1页添加注释。
我开始使用以下for循环。
var spreadPagesLength = 4;
var x = 400;
var i;
for (i = 0; i < spreadPagesLength; ++i) {
}
感谢任何帮助。非常感谢。
答案 0 :(得分:2)
保持目前为止看到的总宽度,以及宽度超过break
时的x
:
var widthArr = [297, 300, 305, 410];
var page = widthArr.length + 1; // after the last page, as a default
var x = 400;
var totalWidth = 0;
for ( var i = 0; i < widthArr.length; ++i )
{
totalWidth += widthArr[i];
if (x < totalWidth)
{
page = i + 1;
break;
}
}