js逻辑 假设一个页面可用区域开始高度是从startHeight到endHeight,我要在这个可用区域里写文本,每条文本占用一行,已知1、一个文本的数组strLines内部有strLines.length条文本,2、每条文本行高fontSize*1.15 3、写strLines.length条文本一共分为divideNuber页。 现在想取得 分页时那条文本的索引并将其push进一个数组内,得到一个分页索引的一个数组,请问该如何实现
时间: 2024-04-06 11:30:59 浏览: 80
可以按照以下步骤实现:
1. 计算出每一页可显示的文本行数 pageLineCount = Math.floor((endHeight - startHeight) / (fontSize * 1.15))。
2. 定义一个空数组 pageIndexes 用于存储分页索引。
3. 定义一个变量 lineCount 用于记录已经写入的文本行数,初值为0。
4. 使用循环遍历文本数组 strLines,对于每一个文本,先计算出它需要占用的行数 lineNum = Math.ceil(strLines[i].length / pageLineCount),然后将 lineCount 增加 lineNum,如果此时 lineCount 大于等于 pageLineCount,则将 i 添加到 pageIndexes 数组中,并将 lineCount 减去 pageLineCount。
5. 循环结束后,如果 lineCount 大于0,则将 strLines.length 添加到 pageIndexes 数组中。
最终得到的 pageIndexes 数组就是分页索引数组,其中的每一个元素表示对应页的最后一条文本的索引。
阅读全文