Javascript 如何在手机上实现拖动事件
拖动事件在桌面上工作,但在移动设备上不工作 我正在使用Javascript 如何在手机上实现拖动事件,javascript,svg,jointjs,touch-event,Javascript,Svg,Jointjs,Touch Event,拖动事件在桌面上工作,但在移动设备上不工作 我正在使用dragstart和dragend事件 <div><a id="newTask" title="Add new task" draggable="true" ondragstart=getId(this.id) touchstart="getId(this.Id)" ondragend="createShape(event)" touchend="createShape(event)"><img src="ima
dragstart
和dragend
事件
<div><a id="newTask" title="Add new task" draggable="true" ondragstart=getId(this.id) touchstart="getId(this.Id)" ondragend="createShape(event)" touchend="createShape(event)"><img src="images/task.png" /></a></div>
对于移动设备,我尝试了
touchstart
和touchend
事件,但不起作用 您可以使用hammer.js。它的性能非常好。您可以使用hammer.js。它的性能非常好。
function createShape(event)
{
var $stageContainer = $("#canvas");
var stageOffset = $stageContainer.offset();
clientX = event.clientX;
clientY = event.clientY;
offsetX = stageOffset.left;
offsetY = stageOffset.top;
x = clientX - offsetX;
y = clientY - offsetY;
switch (shapeId)
{
case('newTask'):
createRect(x, y);
break;
default:
console.log("Nothing to drag");
}
}
function createRect(x, y)
{
var rect = new joint.shapes.devs.TooledModel({
position: {x: x, y: y},
size: {width: 120, height: 85},
inPorts: [''],
outPorts: [''],
attrs: {
text: {text: 'Edit me', fill: 'black'},
rect: {
fill: '#D6F2FC', rx: 7, ry: 15, opacity: .80, 'stroke-width': 2
},
'.inPorts circle': {type: 'input'},
'.outPorts circle': {type: 'output'},
'.port-body': {r: 3}
}
});
graph.addCell(rect);
}