我正在IOS上創建一個ePub閱讀器。基本上,我使用uiwebview來加載xhtml文件。 每次翻頁時,我需要用uiwebview加載文件,然後調用javascript滾動到右偏移量。這是一個問題,一些xhtml文件很大(如大於2MB),因此加載時間太長。因此翻頁動畫並不那麼流暢。 所以我想我可以用uiwebviewA加載一次xhtml,並且每次翻頁時,我都會創建另一個uiwebviewB並從uiwebviewA中獲取所需的html內容(如第二頁)。這樣,我可以將html限制爲小尺寸,並且頁面轉動動畫應該平滑。 我的問題是,是否有任何開源的JavaScript庫可以完成這項工作? 任何意見是讚賞!Javascript拆分html內容
回答
沒有有意義的,明確定義的方法來按照您所描述的方式拆分HTML文檔。你混淆了兩個截然不同的東西:(1)將渲染分成頁面大小的塊,(2)拆分HTML源代碼。換句話說,沒有一種算法能夠想象將一個HTML文件分割成多個片段,這樣渲染片段的順序組合就與原始HTML文件的渲染相同。換句話說,爲了弄清楚如何分割HTML,假設它甚至是可能的,你必須做很多或所有涉及渲染頁面的工作,這將失去整個目的。
您應該放棄分割HTML的概念。電子書閱讀器的所有分頁都是基本上呈現整個HTML文檔,然後「窗口化」和「剪輯」和「抵消」,或者在某些情況下使用CSS區域。
如果我明白你想要做什麼,我可以想到有幾種選擇。
通過預分裂他們早在 工作流程降低輸入HTML文件的大小。例如,在我知道的一個項目中,源(X)HTML文件有一些額外的標記,告訴預處理器在需要時將它們分割成單獨的文件,在這種情況下,這是對電子書閱讀器的解決方法無法正確使用CSS
page-break-*
屬性。預先計算下一頁的渲染爲圖形,並使用 進行翻頁。
如上所述,重新考慮您的書中每個頁面重新加載整個HTML文檔的架構。如果僅僅是翻頁效果,那麼導致你想要這樣做,然後放棄它。
考慮到許多電子書閱讀器提供滾動模式,做 不需要分頁,有的(如向日葵閱讀器)提供只有 滾動模式,這實際上是一些讀者喜歡的東西。 您可以放出滾動版本,然後在版本2中進行分頁。
非常感謝您的解決方案。這些對我非常有幫助! – user418751
你知道任何提供滾動模式的開源閱讀器嗎?這對我有幫助並節省我的時間。提前致謝! – user418751
你真的應該檢查:
而且這個演示是不正是你問什麼:
http://cubiq.org/dropbox/SwipeView/demo/ereader/
它需要一個文本(書)和對文本進行分頁以適應屏幕大小。
我在Android和iOS上測試了這個演示,效果很棒!
- 1. 拆分內容=值
- 2. 拆分HTML內容顯示更多內容
- 3. javascript:按類拆分html
- 4. scala.xml.parsing.ConstructingParser拆分文本內容
- 5. 拆分Combobox的內容
- 6. JavaScript - 插入到HTML的內容部分
- 7. UITableView將內容拆分成部分
- 8. 場的拆分內容分成2場
- 9. 拆分股利內容分成兩行
- 10. JQuery/Javascript和分裂內拆分?
- 11. Perl - 通過「table」標記及其內容拆分html代碼
- 12. 網站數據抓取:拆分HTML內容
- 13. 將CSV列內容拆分爲多列
- 14. 將內容拆分爲兩列 - Wordpress
- 15. SQL - 基於列內容的拆分表
- 16. 順序按拆分列內容
- 17. HTML內容加載在JavaScript
- 18. 設置HTML內容的JavaScript
- 19. Javascript替換html的內容
- 20. 輸出JavaScript的HTML內容
- 21. 在保留HTML佈局的情況下將HTML文本內容拆分爲組
- 22. 在html/css中「硬」字拆分/拆分
- 23. Javascript拆分(Bug?)
- 24. 拆分在JavaScript
- 25. HTML內容部分解析
- 26. TinyMCE不分析html內容
- 27. FreeIPA拆分容器
- 28. C#拆分容器
- 29. 拆分HTML文件
- 30. 拆分html表單?
jQuery Mobile處理您的問題非常好,它使用一個HTML文件並在其中定義了多個頁面,因此請嘗試:[JQM](http://jquerymobile.com/) –
「什麼是頁面」它很難檢測到頁面上的內容。不同的字體,大小,圖像,佈局,間距,內容等 – epascarello
我使用-webkit-columns將html內容格式化爲列,所以頁面意味着列 – user418751