【发布时间】:2014-07-23 14:48:10
【问题描述】:
我在使用hammer.js 和SVG 文件时遇到问题。似乎 svg 对锤子的输入没有反应。这是我在代码示例中缩小的问题:
html-sn-p:
<div id="mydiv" style="background: blue">
<h1>My div</h1>
</div>
<div>
<object id="mysvg" data="circle.svg"/>
</div>
<script>
var element_div = document.getElementById('mydiv');
var element_svg = document.getElementById('mysvg');
Hammer(element_div).on("tap", function(event){
console.log("tap div");
});
Hammer(element_svg).on("tap", function(event){
console.log("svg tap");
});
</script>
svg-sn-p:
<circle id="bubble" fill="black" stroke="#0000ff" cx="50" cy="50" r="50">
<set attributeName="fill" to="yellow" begin="click" />
</circle>
使用“object”-tag 将 svg 文件加载到 html 中,我可以使用 SVG 的“onclick”事件来更改颜色,但锤子不会看到圆圈并且不会记录“svg tap” ”。它完美地记录了上面的“tap div”,所以锤子按预期工作。
另一种方法是使用“img src”标签将 svg 文件加载到 html 中。然后,我可以“锤击”对象(它记录文本),但颜色不会切换。
问题:我需要同时工作,hammer-multitouch 和 svg-interactivity... 是否有另一种加载文件的方法,以便hammer 可以与之交互并且 SVG 交互性不会丢失? 谢谢你的帮助:)
【问题讨论】:
-
为什么不将 svg 内联而不是通过标签包含它。
-
它应该是一个大地铁计划的非常大的 SVG 文件,这会完全弄乱我的 html - 这就是为什么我没有真正考虑它,似乎在这个小例子上工作虽然... :)
标签: javascript html object svg hammer.js