代码之家  ›  专栏  ›  技术社区  ›  fadedbee

如何在浏览器中对文本分页?

  •  0
  • fadedbee  · 技术社区  · 7 年前

    假设我在一个变量中有战争与和平的文本 wandp .

    page(n) 将返回准确的文本量以填充当前浏览器窗口,其中 n 是一个字符索引 万达 .

    我想我正在寻找一个电子书浏览器算法的文本描述。

    另外,我相信在章节和其他布局特征方面会有一些复杂的地方,但他们可以等。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Justin T.    7 年前

    借鉴 Work out how many characters can fit into DIV with JavaScript <div> 并将该元素的宽度设置为浏览器窗口的宽度。然后,我将创建一个函数,从中添加文本 wandp ,检查 < 元素,直到 <部门> 元素等于浏览器窗口高度。

    HTML格式:

    ...
    <div id="normalDiv" style="width: 100%; overflow: hidden"></div>
    <div id="hiddenDiv" style="visibility: hidden; width: 100%;"></div>
    ...
    

    Javascript代码:

    ...
    var targetHeight = window.innerHeight - 40; //browser window height minus height of last line of text
    var wandp = 'The entire content of War and Peace...';
    var startChar = 0;
    var endChar = 0;
    for(var i=startChar; i < wandp.length; i++){
        endChar = i;
        document.getElementById('hiddenDiv').innerHTML += wandp.charAt(i);
        if (document.getElementById('hiddenDiv').clientHeight > targetHeight){
            endChar--;
            break;
        }
    }
    document.getElementById('normalDiv').innerHTML = wandp.substring(startChar, endChar);
    ...