Jav*_*ifi 5 html javascript html5 svg draggable
我使用html5'draggable'属性来拖动容器中的2个元素和svg行来连接这两个元素.连接后,拖动第一个Div应重新绘制连接的svg行(我通过调用'handleDragOver'函数来执行dragover事件).但是如果你更快地拖动第一个div,则不会触发drop事件,并且div会在绘制线条时保持它的原始位置.
function handleDragOver(e) {
if (e.preventDefault) {
e.preventDefault();
}
//Some code doing DOM computation and manipulation
}
return false;
//e.dataTransfer.dropEffect = 'move';
}
Run Code Online (Sandbox Code Playgroud)
如何确保每次都触发drop事件.
请注意:
请查看更新后的小提琴:http://jsfiddle.net/sejoker/d4vs9fgs/1/ 以下更改:
moveLine 函数的微小变化以正确连接可拖动元素(可选)
function handleDrop(e) {
console.log('enter Drop');
if (e.stopPropagation) {
e.stopPropagation(); // stops the browser from redirecting.
}
var offset = e.dataTransfer.getData('Text').split(',');
dragSrcEl.style.left = (e.clientX + parseInt(offset[0], 10)) + 'px';
dragSrcEl.style.top = (e.clientY + parseInt(offset[1], 10)) + 'px';
setTimeout(function(){
var elem = svgLine.aLine;
if (elem !== null) {
var x = e.clientX - svgLine.left,
y = e.clientY - svgLine.top;
moveLine(x, y, elem, offset[2]);
}
}, 50)
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
408 次 |
| 最近记录: |