Javascript 更改位置时Safari渲染问题:已修复为位置:相对
为了好玩,我正在开发一个jQuery插件,当你向下滚动页面时,它会显示“堆栈”中的元素 Github回购在这里- 演示在这里- 在Chrome中一切都很好,但在Safari中测试时,我看到一些奇怪的渲染问题 如果您在Safari中查看演示并快速向下滚动,您将注意到彩色div之间出现白色间隙 更奇怪的是,如果您随后检查其中一个位置不正确的DIV,则检查器会在正确的位置高亮显示该DIV。此外,如果在inspector中更改元素CSS属性之一(如添加边框),页面将被重新绘制,元素将显示在正确的位置 有人知道这是Safari bug,还是我可以用一些鲜为人知的CSS克服的问题吗?我也有类似的问题。 我的解决方法是先给出静态位置,然后再给出相对位置,稍微有点延迟Javascript 更改位置时Safari渲染问题:已修复为位置:相对,javascript,jquery,html,css,safari,Javascript,Jquery,Html,Css,Safari,为了好玩,我正在开发一个jQuery插件,当你向下滚动页面时,它会显示“堆栈”中的元素 Github回购在这里- 演示在这里- 在Chrome中一切都很好,但在Safari中测试时,我看到一些奇怪的渲染问题 如果您在Safari中查看演示并快速向下滚动,您将注意到彩色div之间出现白色间隙 更奇怪的是,如果您随后检查其中一个位置不正确的DIV,则检查器会在正确的位置高亮显示该DIV。此外,如果在inspector中更改元素CSS属性之一(如添加边框),页面将被重新绘制,元素将显示在正确的位置 有
$(elem).css('position', 'static');
setTimeout(function() {
$(elem).css('position', 'relative');
}, 1);
是的,虽然我注意到它在FireFox中可能没有那么糟糕。非常奇怪的bug,我会做的是延迟
滚动
和调整大小
事件的执行,直到它们完成,就像看如果事件没有延迟(滚动窗口)以及当它们完成时会发生什么一样