Можно ли создавать интерактивные динамические ссылки в JointJS, начиная с контрольной точки (x, y), вместо того, чтобы рисовать ее из порта или использовать ореол.
С уважением Ачут
Можно ли создавать интерактивные динамические ссылки в JointJS, начиная с контрольной точки (x, y), вместо того, чтобы рисовать ее из порта или использовать ореол.
С уважением Ачут
В JointJS есть несколько недокументированных методов, которые могут помочь вам решить эту проблему. Больше встроенных.
paper.on('blank:pointerdown', function(evt, x, y) {
var linkView = this.getDefaultLink()
.set({
'source': { x: x, y: y },
'target': { x: x, y: y }
})
.addTo(this.model)
.findView(this);
// initiate the linkView arrowhead movement
linkView.startArrowheadMove('target');
$(document).on({
'mousemove.example': onDrag,
'mouseup.example': onDragEnd
}, {
// shared data between listeners
view: linkView,
paper: this
});
function onDrag(evt) {
// transform client to paper coordinates
var p = evt.data.paper.snapToGrid({
x: evt.clientX,
y: evt.clientY
});
// manually execute the linkView mousemove handler
evt.data.view.pointermove(evt, p.x, p.y);
}
function onDragEnd(evt) {
// manually execute the linkView mouseup handler
evt.data.view.pointerup(evt);
$(document).off('.example');
}
});
mousemove
и mouseup
в onDragEnd()
.
- person Roman; 04.09.2016