我有一个带有大书的UIWebView。我正在使用"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust='150%';
Html页面变大,但滚动位置保持不变,导致文本移出用户视线。
我唯一的想法是,非常奇怪和低效:
<span>
代码中的每个字词; <span>
并记住它是id
; 是否有更好的方法来保留用户正在阅读的位置?
答案 0 :(得分:1)
最后我找到了一种可接受的方式:
在更改字体大小之前,我使用一些小的javascript来查找并存储页面上第一个字母的位置:
var range = document.caretRangeFromPoint(0,0); // get a range of a first onscreen letter
var textContainer = range.startContainer.parentNode;// get an element to which it belongs
var path = getElementXPath(textContainer); // get an XPath for that element (this function is not biult in, but you can find it in some other question)
path+='|'+range.startOffset; // stick XPath and index of the letter together
之后我更改字体大小,通过XPath查找所需元素,在我的字母前插入不可见的<a>
,滚动到那个不可见的<a>
,不要忘记删除它。
完成。这不是一个直截了当的想法,但至少它可以工作,并且不会消耗大量的CPU或RAM,就像我在原始问题中解释过的那样。
的地方