通过iOS上的触摸可拖动元素

时间:2019-05-02 00:32:55

标签: javascript jquery

我需要在iOS设备上通过鼠标和触摸使项目可拖动,而无需安装任何新库,例如jquery-ui。

在这里找到答案https://stackoverflow.com/a/16448981/8799440 对于鼠标事件非常有效。

以下是从该答案中检索的内容:

function handle_mousedown(e){
    window.my_dragging = {};
    my_dragging.pageX0 = e.pageX;
    my_dragging.pageY0 = e.pageY;
    my_dragging.elem = this;
    my_dragging.offset0 = $(this).offset();
    function handle_dragging(e){
        var left = my_dragging.offset0.left + (e.pageX - my_dragging.pageX0);
        var top = my_dragging.offset0.top + (e.pageY - my_dragging.pageY0);
        $(my_dragging.elem)
        .offset({top: top, left: left});
    }
    function handle_mouseup(e){
        $('body')
        .off('mousemove', handle_dragging)
        .off('mouseup', handle_mouseup);
    }
    $('body')
    .on('mouseup', handle_mouseup)
    .on('mousemove', handle_dragging);
}

$('#id').mousedown(handle_mousedown);

我尝试重用此代码,将鼠标事件的所有触摸方式(例如touchstart而不是mousedown

但是,按预期似乎不起作用,我怀疑这是因为touch API与鼠标API完全不同

有没有可以解决这个问题的方法?

谢谢!

0 个答案:

没有答案