Anz*_*ika 9 html css height google-chrome-app
为了填充整个页面的高度,我使用height: 100%;html和body标签,并且在关闭浏览器并重新打开之前,它可以正常工作。(由于移动设备上的问题,我不使用100vh https://nicolas-hoizey.com/2015/02/viewport-height-is-taller-than-the-visible-part-of-the-document-in -some-mobile-browsers.html)
重现步骤:
在以下情况下,页面将自行修复:
为什么会发生?如何解决此问题?
先感谢您!
我遇到了一个非常不同的问题,但我认为我制定的解决方案也可能适合您的情况,因为您提到更新页面可以解决它。
因此,我在 Android 上使用 chrome 时遇到了问题,如果您滚动得非常快(在移动设备上并不罕见),某些元素将无法重新/绘制。到处寻找解决方案,但找不到任何可行的方法。
最后,我找到了一个有效的修复方法:
.pagewrap {
transform: translateZ(0);
animation-name: 'repaint';
animation-duration: 3s;
animation-iteration-count: infinite;
animation-play-state: running;
animation-timing-function: linear;
}
@keyframes repaint {from { zoom: 99.99999%; } to { zoom: 99.99998%; }}
Run Code Online (Sandbox Code Playgroud)
所以它的作用是强制页面以 3 秒为一个周期不断地重新绘制。
也许我应该将其调整为每 2 秒仅移动一小部分,而不是连续移动:
.pagewrap {
transform: translateZ(0);
animation-name: 'repaint';
animation-duration: 2s;
animation-iteration-count: infinite;
animation-play-state: running;
animation-timing-function: linear;
}
@keyframes repaint {
0% {
zoom: 99.99999%;
}
99% {
zoom: 99.99999%;
}
100% {
zoom: 99.99998%;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试zoom: 99.99999;过1,但在某些悬停效果上将比例转变为 1 以上的某些元素会显示缩放呼吸。所以 99.99999 到 99.99998 对我来说是使效果不可见的有效方法。
有点老套的解决方案可能会在很长的页面上出现性能问题,但也许不会,因为浏览器应该只渲染屏幕上的内容。我使用它的页面在图形上很重,有很多复杂的多层效果,这似乎不会对性能产生明显的影响。
似乎许多移动浏览器都过度优化了渲染,这导致了奇怪的失败,而且几乎没有详细记录的修复程序。强制重新绘制是我发现的唯一可行的修复方法。
我尝试了其他稍微不那么激进的、记录在案的强制重新绘制的方法。比如在滚动停止 200 毫秒后向页面添加一些文本(不可见),等等。但没有任何效果,因此我的永久动画整个页面的黑客。
就您而言,其他一些技巧可能会效果更好。本文概述了导致重绘/回流的所有各种情况,因此您可以尝试通过脚本执行其中一些操作。