【问题标题】:React to HTML5 mouse events on FireFox and iPod (Safari?)对 FireFox 和 iPod(Safari?)上的 HTML5 鼠标事件做出反应
【发布时间】:2011-10-24 11:13:51
【问题描述】:

我正在更新我的scrolling game engine 以输出它生成的滚动地图的 HTML5 代码,以便它不仅可以用作(某些特定于平台的)完整游戏创建者,还可以用作跨平台的 HTML5滚动地图编辑器。我克服了支持图形着色的挑战,如我的earlier question 中所述。我在http://sgdk2.enigmadream.com/ben/ 运行了一个很好的示例。但是我注意到滚动地图的鼠标交互在 FireFox 或 iPod 上不起作用。根据Native HTML5 Drag and Drop in Mobile Safari (iPad, iPod, iPhone)?,看起来 iPod 可能会使用不同的事件(ontouch 等)。这并不能解释为什么 FireFox 不会做出反应。难道没有更通用的方式来支持鼠标触摸交互吗?触摸事件是否也适用于鼠标,还是特定于触摸?您如何建议以最跨平台兼容的方式与此滚动地图进行交互?

【问题讨论】:

    标签: javascript html canvas scroll 2d


    【解决方案1】:

    您需要正确检索您的 srcElement

    var srcEl = e.srcElement? e.srcElement : e.target; 
    

    试试看

    P.S.:见targets

    【讨论】:

    • 同时检查您的活动:e= e || window.event;
    • 我已经更新了代码,但它似乎仍然无法在 FireFox 中运行。
    • 我认为您的脚本通常是在没有跨浏览器兼容性的情况下编写的,例如要使事件在 IE 以外的其他浏览器中工作,您需要使用 addEventListener 而不是将函数分配给 element.onEventName 属性,等等。为什么不使用某些 js 框架,例如jQuery?它确实会为您解决浏览器兼容性问题
    • 或者您正在使用 offsetX - 这在 FF 中也不起作用,quirksmode.org/dom/w3c_cssom.html#offsetX
    • 由于正在生成此代码,因此要求第三方框架使其工作似乎很笨拙,尤其是对于连接这几个事件这样的小事。我不需要一个完整的框架。我只需要以跨平台兼容的方式来做。它适用于 IE 和 Chrome,所以我认为我很接近。但是自从我不得不卷入浏览器大战以来已经有很长时间了,所以我可能已经忘记(或从未了解)浏览器之间的许多显着差异。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多