0
두 개의 그림이 있습니다. 하나는 내 캔버스의 보이는 영역에 있고 다른 하나는 오른쪽에 있습니다. 다른 그림에 연결할 수 없기 때문에 연결할 수 없습니다. 그 그림에 연결할 수 있도록 연결을 만드는 동안 오른쪽으로 자동 스크롤하는 것이 가능합니까?draw2d-js에서 연결을 만드는 동안 내 캔버스를 스크롤하는 방법은 무엇입니까?
두 개의 그림이 있습니다. 하나는 내 캔버스의 보이는 영역에 있고 다른 하나는 오른쪽에 있습니다. 다른 그림에 연결할 수 없기 때문에 연결할 수 없습니다. 그 그림에 연결할 수 있도록 연결을 만드는 동안 오른쪽으로 자동 스크롤하는 것이 가능합니까?draw2d-js에서 연결을 만드는 동안 내 캔버스를 스크롤하는 방법은 무엇입니까?
불행히도 자신 만의 스크롤링을 처리해야합니다. 이
var canvas = new draw2d.Canvas("canvas_id");
var scrollElement = canvas.getScrollArea();
var viewArea = new draw2d.geo.Rectangle(
scrollElement.scrollLeft(), scrollElement.scrollTop(),
scrollElement.width() * canvas.zoomFactor, scrollElement.height() * canvas.zoomFactor);
var outputLocator = new draw2d.layout.locator.OutputPortLocator();
var port = figure.createPort("output", outputLocator);
port.on('drag', function(){
if (!viewArea.contains(port.getBoundingBox())) {
// -- the port has moved off the visible area of the canvas so scroll the view.
}
})
캔버스 정책 같은 것을보십시오 :
var myScroll = draw2d.policy.canvas.CanvasPolicy.extend ({ NAME: 'myScroll',
init: function() {
this._super();
},
onMouseMove: function(the, mouseX, mouseY, shiftKey, ctrlKey) {
this._super(the, mouseX, mouseY, shiftKey, ctrlKey);
if (mouseX>the.getWidth()-100+the.getScrollLeft()) {
$buffer = $("#canvas").scrollLeft();
$treshold = 10;
$("#canvas").scrollLeft($buffer+$treshold);
}
}
안녕하세요 토마스, 나는 위의 코드로 관리하지만 다른 솔루션을 개발하지 않았다. 다른 연결 라우터와 자체 캔버스 정책을 사용하여 마우스 위치와 스크롤 막대를 내 캔버스에서 읽을 수 있습니다. 그 코드로 자동 스크롤 옵션을 만들 수 있습니다. – Dreqnoid