Javascript Google Maps API仅在Safari中加载后修改页面样式

Javascript Google Maps API仅在Safari中加载后修改页面样式,javascript,html,css,google-maps,google-maps-api-3,Javascript,Html,Css,Google Maps,Google Maps Api 3,我遇到了一个奇怪的问题。我加载一个页面,最初整个页面上的文本不透明度为1。Google Maps API设置为在超时时加载。2秒钟后,maps API加载地图,页面样式突然被修改。这就像页面上的文字被降低了不透明度(见图)。这个问题似乎只是在Safari中影响到我。有没有人遇到过类似的事情,或者知道某个问题,或者是什么原因导致了这种情况 地图加载之前的原始地图 在地图加载之后 这不是不透明度的变化,而是字体平滑度的变化。Safari可能会在出现可见位置时更改字体平滑:固定页面上的元素 解释 如

我遇到了一个奇怪的问题。我加载一个页面,最初整个页面上的文本不透明度为1。Google Maps API设置为在超时时加载。2秒钟后,maps API加载地图,页面样式突然被修改。这就像页面上的文字被降低了不透明度(见图)。这个问题似乎只是在Safari中影响到我。有没有人遇到过类似的事情,或者知道某个问题,或者是什么原因导致了这种情况

地图加载之前的原始地图

在地图加载之后


这不是不透明度的变化,而是字体平滑度的变化。Safari可能会在出现可见
位置时更改字体平滑:固定页面上的元素

解释 如果未指定
-webkit字体平滑
,Safari将使用
亚像素抗锯齿
作为大多数元素的默认值,文本将如下呈现:

但是,当它在页面上遇到可见的
位置:fixed
元素时,它可以使用
抗锯齿
进行字体平滑,如下所示:

演示 您可以选中(仅在Safari上)并使用控件查看
-webkit字体平滑
位置
如何影响Safari上的文本外观

解决方案 要防止Safari更改字体平滑,只需指定
字体平滑
,如下所示:

正文{
-webkit字体平滑:亚像素抗锯齿;
}

我猜JSFIDLE的代码太多了,但是您至少可以提供一个链接到您正在体验的站点吗?我想看一下,看看是什么行为。哇。我从未想过指定
亚像素抗锯齿
实际上会迫使Safari使用它。我认为这只是Safari中的一个bug,无法对变换使用亚像素抗锯齿。我本来打算否决你的意见,认为你只是想提出建议,但是你太棒了。哇!令人惊叹的!我甚至不知道该说什么,但你是个救命恩人。我永远不会想到这个。我在这个问题上花了几个小时。很抱歉延迟回复,我真的认为没有人会回复这个问题。到目前为止,我还没有注意到对性能的任何影响,但您认为这可能会对性能产生影响吗。将字体平滑应用于正在创建的整个页面。再次感谢!这是巨大的@mcbeav Safari一直在对整个页面应用字体平滑。事实上,这是Mac OS的核心,在Mac OS中,大多数程序上的文本都已平滑。您可以使用
-webkit字体平滑:无
查看页面在没有字体平滑的情况下的外观。换句话说,不要担心对性能的影响。太棒了!非常感谢你!我真的很感谢你的帮助!这是巨大的!感谢您分享您的知识和时间。