javascript - 更改位置时出现 Safari 渲染问题 :fixed to position:relative

标签 javascript jquery html css safari

我正在开发一个 jQuery 插件,只是为了好玩,它会在您向下滚动页面时显示“堆栈”中的元素。

Github 存储库在这里 - https://github.com/JayBizzle/Reveal

演示在这里 - http://jaybizzle.github.io/Reveal/

在 Chrome 中一切正常,但在 Safari 中测试时我发现了一些奇怪的渲染问题。

如果您在 Safari 中查看演示并快速向下滚动,您会注意到彩色 DIV 之间出现白色间隙。

更奇怪的是,如果您随后检查其中一个位置不正确的 DIV,检查员会突出显示正确位置的 DIV。此外,如果您在检查器中更改了其中一个元素的 CSS 属性,例如添加边框,则页面会重新绘制并且该元素会出现在正确的位置。

如果这是一个 Safari 错误,或者我可以用一些鲜为人知的 CSS 来克服,有人知道吗?

最佳答案

我遇到了类似的问题。 我的解决方法是先给 position static,然后稍微延迟一下 relative。

    $(elem).css('position', 'static');
    setTimeout(function() {
      $(elem).css('position', 'relative');
    }, 1);

关于javascript - 更改位置时出现 Safari 渲染问题 :fixed to position:relative,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22693126/

相关文章:

javascript - jQuery 委托(delegate)和 PreventDefault()

javascript - 切换具有多个值的选择器 CSS

javascript - 帮助理解 jQuery 按钮启用/禁用代码

javascript - 根据页面返回的 url 编辑复选框

javascript - 允许用户向您的站点添加自己的 JavaScript 的安全问题?

jquery - 选择第一级文本元素 '.text()'而不选择子元素

javascript - 预加载图像以使其在加载过程中不调整大小?

javascript - 将自定义图标添加到选择菜单

javascript - 如何获得动态创建的 ID?

javascript - JavaScript 中无法从 div 获取值