2

我想在移动设备上“定位:固定”(我有一个 Android 设备)——这不存在。
我通过创建两个 div 来伪造它,它们的高度总和为屏幕的高度(使用 JS)并将touch侦听器添加到底部 div。这些事件将调整 scrollTop 值。这是旧的“touchScroll.js”的副本。

滚动成功,我什至增加了吊索的感觉。但是,与操作系统滚动窗口视图时相比,整个滚动非常不稳定。

我读过随机的地方,在这里的某个地方添加-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);css 位来解决这个问题。我在 div 本身,在身体上,只有背面部分,只有变换等......所有排列......没有任何帮助。印章仍然存在,技巧阻止我的键盘出现在inputs

我试图在我的滚动中创建一个内部 div,而不是调整scrollTop值,我只是通过制作它position:absolute并调整它来移动内部 div top。这没什么区别。

有没有什么办法可以打爆?
示例在这里:http: //mobile.phantasyrpg.com/so-example

4

2 回答 2

1

不幸的是,可能没有解决方案,Android 浏览器以其糟糕的渲染性能而闻名。不同的 Android 版本/设备/浏览器组合会表现出不同的性能和兼容性,事实上,您的示例在我的 Android 4.0.4 Chrome 上运行非常流畅,但在工厂浏览器上甚至无法运行。

作为一般规则,始终尝试使用 CSS 转换,并且只能在其他属性(如 scrollTop)之后使用,因为转换通常是硬件加速的。(就像在 iOS Mobile Safari 和现代 Android 浏览器中一样)。

我建议您尝试最新版本的TouchScrolliScroll,因为它们都使用 CSS 转换,并且可能还包含其他优化。

-webkit-transform:translate3d(0,0,0);设置通常用于强制硬件加速,并且应该用于正在更改/移动的元素(在您的情况下为内容 div)。但是,如果您使用新版本的滚动库,它们-webkit-transform无论如何都会覆盖属性。-webkit-backface-visibility仅当也应用于元素时才适用,-webkit-transform将其设置为hidden可能会解决不需要的闪烁或在某些情况下可能会提供性能增益。

于 2012-07-06T23:49:43.503 回答
0
-webkit-overflow-scrolling: touch; 

应该让事情变得更顺利。不确定它是否适用于较旧的 Android

于 2012-07-07T00:05:37.590 回答