0

如果您有 iPad,请在您的 iPad 上查看此页面www.toughtomato.com/view(我在 iPad2 上对此进行了测试)。现在在您的桌面浏览器上检查它 - 任何浏览器都没有关系。

如果您注意到左侧的菜单在 iPad 上消失了,但元素仍然存在,因为您可以点击以单击它们。

现在我已将此行为归结为在页面上包含 Google Maps v3 脚本:

<script type='text/javascript' src='http://maps.google.com/maps/api/js?sensor=false'></script>

如果我从这个页面的 HTML 中删除这行代码,那么菜单在 iPad 上仍然可见。什么可能导致这种情况,有解决办法吗?

谢谢你的帮助。这是一个非常令人沮丧的问题!

[编辑] 除了谷歌地图脚本之外,我已经从页面中删除了所有 JS。

4

3 回答 3

1

Thought i would chip in on this too. After playing around with z-indexs and getting no where I found this post

iPad Safari scrolling causes HTML elements to disappear and reappear with a delay

Which was to do with elements being hidden during scroll.

One of the fixes was to use

*:not(html) {
-webkit-transform: translate3d(0, 0, 0);

To force hardware acceleration (I think). I used modified version (applying it to all divs) and behold it works.

Hope this is helpful to someone else.

于 2013-03-15T15:25:21.253 回答
1

感谢您之前通过使用 iFrame 嵌入地图找到了一种变通解决方案,但是,我通过将以下属性添加到不可见元素来解决了这个问题。

z-index: -1;

这些元素只有在 Google Maps JS 加载后才变得不可见,因此很明显它正在操纵 DOM。不幸的是,它所针对的块级元素没有共性,但它们位于 body 标记中的第一个和最后一个块元素。好奇的。

无论如何,我希望这个解决方案可以帮助遇到这个奇怪错误的人。

PS。我在运行 iOS 5.1.1 的 iPad 1 上测试我的网站

于 2013-02-08T14:29:51.697 回答
1

您可以将此问题概括为:我在我的页面上包含了第 3 方 JavaScript,当我这样做时,它会更改没有第 3 方 JavaScript 的内容的呈现和/或行为。

Google Maps JS 的包含是否导致了这件事真的很难说。

可能是 Google Maps JS 正在修改影响您的演示文稿的 DOM。可能是 Google Maps JS 与您的 JS 冲突。这可能是由于 Google Maps JS 写得不好。这可能是因为你的 JS 写得不好。

有太多因素可以提出解决方案,甚至是一个单一的起点。

你可以试试:

  • 删除您的 JS 并查看问题是否仍然存在;如果不是,请调查受影响的页面内容以何种方式依赖于您的 JS,以及如何重写您的 JS 以不与 Google Maps JS 冲突

  • 检查启用和未启用 JS 的 DOM,并查看 Google Maps JS 可能以何种方式修改内容

  • 检查受影响内容上的应用样式;如何更新您的 CSS 以进行补偿?

于 2012-05-18T08:48:54.443 回答