【问题标题】:SVG interactivity on an iPadiPad 上的 SVG 交互性
【发布时间】:2011-12-17 08:30:41
【问题描述】:

我们的代码通过 Ajax 加载 SVG,然后通过 Javscript 进行交互。在 Mozilla 和 Safari 5 下,在 PC 上运行,我们得到了 SVG 中预期的点击事件。运行 Safari iPad,我们不会收到点击事件。根据 Safari 开发者指南:

http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html

看起来我们应该“让元素可点击”。 Apple 的指南建议通过添加一个 onclick 处理程序来做到这一点。问题是我们所有的 SVG 元素都已经通过 jQuery 设置了点击处理程序——它们仍然没有点击。

也许这是因为 SVG 不是 HTML,SVG 的 DOM 访问不是 HTML DOM 的访问? (我们以前来过这里。)

我们如何让 iPad 监听 SVG 元素上的事件?

【问题讨论】:

    标签: ipad svg


    【解决方案1】:

    据我所知,根据这个 javascript - 处理画布/SVG 的 safari 存在问题 似乎点击和触摸不一样。 https://github.com/kangax/fabric.js/blob/master/dist/all.js 并且 SVG 1.1 除了点击事件之外没有其他的 http://www.w3.org/TR/SVG11/interact.html#PointerEventsProperty 我有相同的兴趣,因此我寻求相同的信息...

    【讨论】:

      【解决方案2】:

      我能够使用 jquery 和 javascript 在 Ipad 上获得点击事件。但我的问题是 svg 在 iPad 上模糊。

      我的 svg 嵌入在一个 html 对象中,然后我只需调用一个普通的单击事件来访问它,该事件引用了一个通过以下方式访问 svg 组件的函数:

      window.top.document.getElementById('elementId');
      

      【讨论】:

      • 关于这实际上是如何工作的更多细节?您是否在对象上注册了触摸事件处理程序,然后将它们转换为点击事件以在 SVG 元素上手动重新调度它们?
      猜你喜欢
      • 1970-01-01
      • 2016-02-25
      • 2021-03-20
      • 1970-01-01
      • 2017-08-12
      • 2017-09-28
      • 1970-01-01
      • 2018-05-21
      • 2015-03-29
      相关资源
      最近更新 更多