2010-12-21 55 views
0

我的第一個問題在這裏。糾正我,如果我做錯了什麼。iOS中使用CSS多列的電子書(計算不同列中文本的範圍)

我在這裏找到了一個源代碼,演示瞭如何使用CSS多列對html進行分頁。 http://groups.google.com/group/leaves-developers/browse_thread/thread/27e4bf5ff3c53113/f137dc01b6d853b7

我的問題是: 如何計算不同列(頁)中文本的範圍/位置?

例如,當更改字體大小時,當前頁面中的文本將跳轉到另一頁面。 爲了解決這個問題,程序應該保存當前文本位置 ,並在重新格式化網頁後移動到正確的頁面(列)。

這對實現書籤功能也很有用。

我認爲這應該通過JavaScript來完成,但我是新來的JavaScript。

歡迎任何建議和提示。

回答

0

這是一個普遍的問題,很難回答,所以我只是試着指出你我可能會嘗試的方向。

我不知道頁面佈局的外觀或功能如何,但理論上你可以這樣做的一種方法是在每次更改字體大小時檢查「列」的文本節點(假定此字體大小改變是通過點擊按鈕來實現的)。所以,舉個例子,假設你有一個帶有id#column_1的div,只要有人點擊按鈕的ui元素,你就可以評估#column_1的前幾個字符,然後搜索你的字符串以找到該文本,並加載任何不。您定義爲該文本週圍的「頁面」的字符,並將您的渲染方法稱爲「轉向」該頁面。所以,你的函數的流量可能是這個樣子:

zoomControl.click(click event){ //do something when you click the zoom control 
var text = findTextofCurrentPage() //get the first bit of text of your current 'page' 
renderLargerTextSize() //re-render your 'page' w/ larger text (for user feedback purposes) 
renderPageWith(text) //render/navigate to the 'new' page wherein your the text in the variable 'text' can be found 
} 

顯然,這是您可以使用哪些功能/方法來實現這一目標一個超級通用的「想法」,但我認爲,如果你挖成JS和說像JQuery這樣的事情可以做得相對容易。

+0

謝謝您的回覆。主要問題是,由於列是動態生成的,因此程序不知道哪些文本落入當前列。 – user549683 2010-12-31 10:55:25