使用CSS多列的iOS中的电子书(计算不同列中的文本范围)

时间:2010-12-21 10:13:41

标签: javascript ios css uiwebview

我的第一个问题。如果我做错了什么,请纠正我。

我在这里找到了一个源代码,演示了如何使用CSS多列对html进行分页。 http://groups.google.com/group/leaves-developers/browse_thread/thread/27e4bf5ff3c53113/f137dc01b6d853b7

我的问题是: 如何计算不同列(页面)中文本的范围/位置?

例如,在更改字体大小时, 当前页面中的文本将跳转到另一个页面。 要解决此问题,程序应保存当前文本位置, 重新格式化网页后移动到正确的页面(列)。

它对于实现书签功能也很有用。

我认为应该通过javascript完成,但我是javascript的新手。

欢迎任何建议和提示。

1 个答案:

答案 0 :(得分: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这样的事情,这种事情可以相对容易地完成。