gpt4 book ai didi

javascript - HTML/JavaScript : Fix scroll position after screen rotation

转载 作者:太空狗 更新时间:2023-10-29 16:09:05 26 4
gpt4 key购买 nike

在屏幕旋转后恢复 HTML 文档中滚动位置的最佳方法是什么? (这是在 Cocoa Touch UIWebView 中,但我认为它到处都是问题。)默认行为似乎恢复了以像素为单位的 y 偏移量,但由于文本已被重排,因此这现在是文档中的不同位置。

我最初的想法是:

  1. 用不可见的、唯一标识的元素来装饰文档。
  2. 在旋转之前,搜索 y 偏移量最接近滚动偏移量的元素 e
  3. 旋转后,将滚动偏移量更新为e 的新 y 偏移量。

即使可行,我也不想在文档中插入一堆垃圾。有没有更好的办法?


这里有一张图表来阐明这个问题。恢复原始 y 偏移不会产生预期的结果,因为在横向模式下更多文本适合一行。

enter image description here

最佳答案

虽然不漂亮,但很管用。这要求在整个文档文本中都有 span 标签。

// Return the locator ID closest to this height in pixels.
function findClosestLocator(height) {
var allSpans = document.getElementsByTagName("span");
var closestIdx = 0;
var closestDistance = 999999;
for(var i = 0; i < allSpans.length; i++) {
var span = allSpans[i];
var distance = Math.abs(span.offsetTop - height);
if(distance < closestDistance) {
closestIdx = i;
closestDistance = distance;
}
}
return allSpans[closestIdx].id;
}

旋转后,document.getElementById(spanId).offsetTop 是新的 y 偏移量,其中 spanIdfindClosestLocator() 的结果> 旋转前。

关于javascript - HTML/JavaScript : Fix scroll position after screen rotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6444656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com