【问题标题】:Stopping Famo.us GestureHandler event propagation on mobile在移动设备上停止 Famo.us GestureHandler 事件传播
【发布时间】:2015-10-15 17:59:17
【问题描述】:

Famo.us 的 GestureHandler 似乎并没有在移动设备上流行起来。即使是非常简单的测试:

var FamousEngine = require('famous/core/FamousEngine');
var DOMElement = require('famous/dom-renderables/DOMElement');
var GestureHandler = require('famous/components/GestureHandler');

FamousEngine.init();

var scene = FamousEngine.createScene();
var rootNode = scene.addChild();

var backgroundNode = rootNode.addChild();
var backgroundElement = new DOMElement(rootNode, {
    classes: ['background'],
});

var gestures = new GestureHandler(rootNode);

gestures.on('drag', function(e) {

    console.log(e);

    .
    .
    .

});

当您使用鼠标拖动时,拖动手势回调在桌面上触发,但在移动浏览器中拖动只会滚动文档。

传递给回调的事件,在我的示例中为e,是一个自定义的著名事物,没有通常的.stopPropagation 方法。

什么给了?

【问题讨论】:

    标签: javascript famo.us famous-engine


    【解决方案1】:

    原来答案与事件处理无关。在我的事件处理程序中,我使用 ES6 的新解构语法创建了一些变量:

    var [x, y] = node.getPosition();
    

    虽然我的代码正在“babelified”并且在桌面浏览器上完美运行,但在 iOS 上却失败了。

    这里也描述了这个问题:

    https://github.com/babel/babelify/issues/22

    解决方案就是用老式的方式来做......

    :(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      相关资源
      最近更新 更多