將空行進行填補,從而能夠避免頁尾出現(xiàn)空行的現(xiàn)象,提高頁面的利用率,進一步能夠優(yōu)化展示效果,提高用戶體驗。
[0054]實施例二
[0055]參見圖3,本圖示出了本發(fā)明實施例提供的頁面排版方法的第二種實施方法流程圖。本實施例是在實施例一基礎(chǔ)上的擴充,關(guān)于本實施例方法步驟中與實施例一重復(fù)性的內(nèi)容可參見實施例一的內(nèi)容,在本實施例中不再贅述。本實施例中,所述方法包括以下步驟:
[0056]步驟S201:確定終端顯示區(qū)域可以容納的字數(shù)。
[0057]在本實施例中,假設(shè)文章包含1000個字符,終端顯示區(qū)域可以容納的100個字。
[0058]步驟S202:根據(jù)終端顯示區(qū)域可以容納的字數(shù),將文章分成若干內(nèi)容塊。
[0059]從文章的第一個字符開始,每100個字符作為一個內(nèi)容塊,得到10個內(nèi)容塊。
[0060]步驟S203:將內(nèi)容塊加載到對應(yīng)的內(nèi)容容器。
[0061]步驟S204:確定當前頁面容器及其對應(yīng)的內(nèi)容容器。
[0062]在上述實施例的基礎(chǔ)上,本實施例中,第一個頁面容器對應(yīng)第一個內(nèi)容容器;第二個頁面容器對應(yīng)第二個內(nèi)容容器;第三個頁面容器對應(yīng)第三個內(nèi)容容器,以此類推。當然,第一個內(nèi)容容器結(jié)束部分的內(nèi)容與第二個內(nèi)容容器起始部分的內(nèi)容相互銜接;第二個內(nèi)容容器結(jié)束部分的內(nèi)容與第三個內(nèi)容容器起始部分的內(nèi)容相互銜接;銜接關(guān)系順次向后。
[0063]步驟S205:將內(nèi)容容器插入到頁面容器中。
[0064]步驟S206:將緊鄰內(nèi)容容器的下一個內(nèi)容容器插入到當前頁面容器。
[0065]假設(shè)當前頁面容器為第二頁面容器,由于插入第二個內(nèi)容容器后,第二個頁面容器頁尾部分存在兩行空行,則將第三個內(nèi)容容器插入第二個頁面容器中,以填充第二個頁面容器的兩空白行。當然,由上述實施例可知,在第二個頁面容器中,第三個內(nèi)容容器僅起始部分的兩行內(nèi)容能夠顯示,其他部分均無法顯示。
[0066]步驟S207:計算當前頁面容器的偏移量。
[0067]假設(shè)第一個頁面容器中有兩行空行,則第二個內(nèi)容容器起始部分兩行內(nèi)容,在第一個頁面容器和第二個頁面容器中均有顯示,造成重復(fù)顯示,不僅浪費頁面資源,而且影響用戶的體驗。因此,為了去掉重復(fù)顯示的部分,需要調(diào)整第二個頁面容器中第二個內(nèi)容容器的顯示區(qū)域。在本發(fā)明的一個優(yōu)選實施例中,通過計算得到第一個頁面容器與第一個內(nèi)容容器的高度差,得到第一個頁面容器的偏移量,用于第二個頁面容器根據(jù)該偏移量調(diào)整內(nèi)容容器。相類似的,第二個頁面容器中也存在空行,因此,需要計算第二個頁面容器的偏移量,以便于對后面頁面容器進行排版。
[0068]步驟S208:累計所述偏移量,得到累計偏移量。
[0069]其中,在上述實施例的基礎(chǔ)上可知,當對第二個頁面容器中第二個內(nèi)容容器向上偏移兩行時,為了保證內(nèi)容的銜接顯示,還需要將第二個頁面容器中第三個內(nèi)容容器向上偏移兩行。而第二個頁面容器本身已經(jīng)存在兩個空行,因此,第三個內(nèi)容容器在第二個頁面容器中重復(fù)的部分為,第一個頁面容器的偏移量與第二個頁面容器的偏移量的累加。因此,需要將之前得到的偏移量全部累計,得到累計偏移量,以便于對后面的頁面容器根據(jù)累計偏移量進行處理。
[0070]步驟S209:將當前頁面容器的下一個頁面容器作為當前頁面容器,根據(jù)累計偏移量調(diào)整當前頁面容器中內(nèi)容容器的顯示內(nèi)容。
[0071]其中,根據(jù)偏移量調(diào)整第三個頁面容器中內(nèi)容容器的顯示內(nèi)容,具體包括:判斷累計偏移量是否小于第三個內(nèi)容容器的高度;當累計偏移量小于第三個內(nèi)容容器的高度時,說明第三個內(nèi)容容器中,僅有一部分內(nèi)容在第二個頁面容器中顯示,其他部分需要在第三個頁面容器中顯示,因此,將第三個頁面容器中的第三個內(nèi)容容器向上偏移,將第三個內(nèi)容容器中,與第二個頁面容器重復(fù)顯示的部分偏移出可見區(qū)域,同時將第三個頁面容器中的第四個內(nèi)容容器向上偏移相同的量。當累計偏移量大于或者等于第三個內(nèi)容容器的高度時,說明第三個內(nèi)容容器的內(nèi)容,全部在第二個內(nèi)容容器中顯示,因此,刪除第三個頁面容器。當然,當‘當前頁面容器’為最后一個頁面容器時,對文章的排版結(jié)束。
[0072]本實施例中,通過計算重復(fù)顯示內(nèi)容的偏移量,并按照該偏移量將重復(fù)的部分從頁面容器的可見區(qū)域偏移出,在填充每個頁面容器空白區(qū)域的基礎(chǔ)上,去除頁面容器之間重復(fù)顯示的部分,不僅能夠充分利用頁面資源,而且能夠提高用戶體驗。
[0073]實施例三
[0074]參見圖4,該圖示出了本發(fā)明實施例提供的頁面排版方法的第三種實施方法流程圖。本實施例將上述兩個實施例的執(zhí)行次序進行變換,形成本實施例的執(zhí)行方式。本實施例的執(zhí)行內(nèi)容與上述實施例相似,對于本實施例方法步驟中與實施例一或者實施例二重復(fù)性的內(nèi)容,可參見實施例一和/或者實施例二的內(nèi)容,在本實施例中不再贅述。本實施例中,所述方法包括以下步驟:
[0075]步驟S301:確定終端顯示區(qū)域可以容納的字數(shù)。
[0076]步驟S302:根據(jù)終端顯示區(qū)域可以容納的字數(shù),將文章分成若干內(nèi)容塊。
[0077]步驟S303:將每個內(nèi)容塊加載到對應(yīng)的內(nèi)容容器。
[0078]步驟S304:將每個內(nèi)容容器插入到對應(yīng)的頁面容器中。
[0079]步驟S305:除最后一個頁面容器,在每個頁面容器中,插入下一個頁面容器中的內(nèi)容容器。
[0080]在本實施例中,將每個內(nèi)容容器插入相對應(yīng)的頁面容器后,除去最后一個頁面容器,可以首先填補每一個頁面容器的空白;或者,將對應(yīng)的內(nèi)容容器插入當前頁面容器時,同時將該內(nèi)容容器的下一個內(nèi)容容器一起插入當前頁面容器。
[0081]步驟S306:確定當前頁面容器。
[0082]步驟S307:對當前頁面容器進行排版。
[0083]如果當前頁面容器為第一個頁面容器,當前頁面容器已經(jīng)排版完成,通過計算當前頁面容器與第一個內(nèi)容容器的高度差確定偏移量;當‘當前頁面容器’不為第一個頁面容器也不為最后一個頁面容器時,計算當前頁面容器及其對應(yīng)的內(nèi)容容器的高度差,然后,根據(jù)之前計算的偏移量,將當前頁面容器中的內(nèi)容容器向上偏移,完成對當前內(nèi)容容器的排版。
[0084]步驟S308:計算當前頁面容器的偏移量。
[0085]步驟S309:累計所述偏移量,得到累計偏移量
[0086]步驟S310:將當前頁面容器的下一個頁面容器作為當前頁面容器,根據(jù)所述累計偏移量對當前頁面容器進行排版。
[0087]步驟S311:判斷當前頁面容器是否為最后一個容器,當否時,執(zhí)行步驟S308 ;當是時,執(zhí)行步驟S312。
[0088]其中,當‘當前頁面容器’不為最后一個頁面容器時,根據(jù)上述實施例所述,當前頁面容器中存在與下一個頁面容器中相同的內(nèi)容,因此,仍然需要計算偏移量,以便于得到累計偏移量,并根據(jù)該累計偏移量對后面的頁面容器進行排版;當‘當前頁面容器’為最后一個頁面容器時,所有的頁面容器均已完成排版,結(jié)束操作。
[0089]本實施例所提供的頁面排版方法,將文章分頁得到的若干內(nèi)容塊,并將內(nèi)容塊加載到對應(yīng)的內(nèi)容容器中。在確定當前頁面容器及其對應(yīng)的內(nèi)容容器后,將所述內(nèi)容容器插入到頁面容器中。由于當前頁面容器頁尾部分存在空行,除最后一個頁面容器,通過將緊鄰所述對應(yīng)內(nèi)容容器的下一個內(nèi)容容器插入到當前頁面容器,填充當前頁面容器的空行。與現(xiàn)有技術(shù)相比,當分頁后頁面中存在空行時,能夠?qū)⒖招羞M行填補,從而能夠避免頁尾出現(xiàn)空行的現(xiàn)象,提高頁面的利用率,進一步能夠優(yōu)化展示效果,提高用戶體驗。
[0090]實施例四
[0091]為了使本領(lǐng)域技術(shù)人員更加清楚的了解本發(fā)明的技術(shù)方案,本實施例中通過一個具體實例對本發(fā)明的技術(shù)方案進行詳細的描述。
[0092]本實施例中以一篇包括1000個字符的中文文章為例進行描述,假設(shè)電子閱讀終端為手機,其顯示界面的高度和寬度參數(shù)已知,字符顯示時的字號已知。首先,根據(jù)字符字號與像素的關(guān)系計算每個字符所占的寬度;然后,根據(jù)手機顯示界面的寬度,計算每行能夠容納的字符數(shù)。假設(shè)本實施例中,每行能夠容納10個字符;最后,根據(jù)手機顯示界面的高度參數(shù)計算每頁能夠容納的行數(shù)。假設(shè)本實施例中,能夠容納10行,從而確定在本實施例中,每頁能夠容納100個字符。1000個字符能夠分為10頁。
[0093]從第一個字符開始,為每100個字符插入DOM節(jié)點,通過DOM節(jié)點的形式表示出每頁的內(nèi)容。具體為,在第一個字符前面添加起始節(jié)點,在第一百個字符后面添加結(jié)束節(jié)點,順次為后面每100個字符進行相同的操作。
[0094]需要指出的,每100個字符可以看做一個內(nèi)容塊,而DOM節(jié)點可以看做包裹內(nèi)容塊的內(nèi)容容器,本實施例中,包括10個內(nèi)容容器。此外,為了能夠直觀的看到每個內(nèi)容塊在手機顯示界面的顯示效果,在