세로 스크롤바가있는 브라우저 창에서 캔버스에 그릴 때 문제가 있습니다.
그림은 올바른 위치에 있으며 캔버스 주위를 잡고 연결할 수 있지만 이는 브라우저 창의 세로 스크롤 막대를 완전히 위로 한 상태에서만 가능합니다.
창을 아래로 스크롤하면 노드를 더 이상 끌 수 없으며 노드를 가리키면 커서도 변경되지 않습니다. 아래로 스크롤하면 노드를 드래그 할 수 있다는 것을 알아 냈습니다. 어떻게 든 노드의 "잡는 영역"은 브라우저 창에 따라이 영역이 고정 된 위치를 갖는 것처럼 위치를 변경하지 않습니다.
내가 뭘 잘못하고 있니?
obs .: Cant 게시 이미지 :(, 평판이 충분하지 않습니다.
미리 감사드립니다!
Draw2d의 Google 그룹에 동일한 질문을 게시하고 프레임 워크 개발자 Andreas Herz로부터 다음 답변을 받았습니다.
"안녕
이것은 lib의 작은 디자인 결함입니다.
일반적으로 div / canvas의 스크롤 위치를 "자동 감지"할 수 있습니다. 하지만 지금은하지 않았습니다.
해결책:
둘 중 하나 : Canvas # setScrollArea (DOMNode node) 메서드를 사용하여 draw2d.Canvas에 스크롤 컨테이너를 설정합니다.
또는 : 첫 번째 솔루션이 작동하지 않으면 직접 계산합니다.
var canvas = new draw2d.Canvas("domId");
canvas.fromDocumentToCanvasCoordinate = $.proxy(function(x, y) {
return new draw2d.geo.Point(
(x - this.getAbsoluteX() + this.getScrollLeft())*this.zoomFactor,
(y - this.getAbsoluteY() + this.getScrollTop())*this.zoomFactor);
},canvas);
/**
* @method
* Transforms a canvas coordinate to document coordinate.
*
* @param {Number} x the x coordinate in the canvas
* @param {Number} y the y coordinate in the canvas
*
* @returns {draw2d.geo.Point} the coordinate in relation to the document [0,0] position
*/
canvas.fromCanvasToDocumentCoordinate = $.proxy(function(x,y) {
return new draw2d.geo.Point(
((x*(1/this.zoomFactor)) + this.getAbsoluteX() - this.getScrollLeft()),
((y*(1/this.zoomFactor)) + this.getAbsoluteY() - this.getScrollTop()));
},canvas);"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다