在Famous.js中可以丢弃吗?

时间:2014-07-07 15:33:34

标签: jquery famo.us

我正在尝试在famous.js中实现可拖动/可拖放的图像。也就是说,如果图像被放置在正确的表面上,则会触发事件。

在我可拖动的图片上,我正在聆听' touchend'事件。这里没问题。

我还有一个与我的目标'相关联的touchend事件。表面。问题是当我释放可拖动的时候,这个touchend事件不会触发,只会触发draggable中的touchend。

我的问题是:Famous.js是否具有可放置的'像jQuery中的对象?如果没有,我怎样才能检测到目标视图上发生事件的时间?

我的代码几乎只是来自this answer的代码,并添加了一些事件处理程序。

1 个答案:

答案 0 :(得分:4)

还没有可放置的对象..但您可以在曲面上使用普通的HTML5 DOM事件。这是一个工作拖放示例,用于记录您删除的文件。

var Engine = require('famous/core/Engine');
var Surface = require('famous/core/Surface');
var Modifier = require('famous/core/Modifier');

var context = Engine.createContext();

var surface = new Surface({
    size:[200,200],
    content:"Drop Here!",
    properties:{
        border:'4px solid white',
        backgroundColor:'green',
        fontSize:'36px',
        fontFamily:'arial',
        textAlign:'center',
        color:'white',
        lineHeight:'200px'
    }
});

surface.on('dragenter', function(evt){
    evt.preventDefault();
    return false;
});

surface.on('dragleave', function(evt){
    surface.setProperties({border:'4px solid white'});
    evt.preventDefault();
    return false;
});

surface.on('dragover', function(evt){
    surface.setProperties({border:'4px solid black'})
    evt.preventDefault();
    return false;
});

surface.on('drop', function(evt){

    evt.preventDefault();
    evt.stopPropagation();

    surface.setProperties({border:'4px solid white'});

    files = evt.dataTransfer.files;
    console.log(files);
});

context.add(new Modifier({origin:[0.5,0.5]})).add(surface);