在具有垂直滚动条的浏览器窗口内的画布中绘制时,出现问题。可滚动浏览器窗口(抓取位置)内的画布
数字处于正确的位置,可以在画布周围抓住它并进行连接,但只有在垂直滚动条(浏览器窗口)完全打开的情况下才可以。
当窗口向下滚动时,节点不能再被拖动,甚至光标在悬停节点时也会改变。 我想出了在向下滚动时拖动节点的可能性。不知何故,节点的“抓取区域”不会改变其位置,就好像该区域根据浏览器窗口具有固定的位置。
我在做什么错了?
实验值:广东话发表图片:(,我没有足够的声誉。
提前感谢!
在具有垂直滚动条的浏览器窗口内的画布中绘制时,出现问题。可滚动浏览器窗口(抓取位置)内的画布
数字处于正确的位置,可以在画布周围抓住它并进行连接,但只有在垂直滚动条(浏览器窗口)完全打开的情况下才可以。
当窗口向下滚动时,节点不能再被拖动,甚至光标在悬停节点时也会改变。 我想出了在向下滚动时拖动节点的可能性。不知何故,节点的“抓取区域”不会改变其位置,就好像该区域根据浏览器窗口具有固定的位置。
我在做什么错了?
实验值:广东话发表图片:(,我没有足够的声誉。
提前感谢!
我张贴同样的问题在谷歌组Draw2D的中和接收来自以下的答案框架显影剂,安德烈亚斯赫茨。
“您好
这是在lib小设计缺陷。
normaly能够‘自动检测’在div /画布的滚动位置。乙我目前没有。
解决方案:
之一:设置滚动容器与方法帆布#setScrollArea(的DOMNode节点)
或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);"
仍然不行!使用最新版本(5.8.0)问题依然存在。 – gravi
你基本上需要修改代码以抵消页面滚动位置
canvas.fromDocumentToCanvasCoordinate = $.proxy(function(x, y) {
return new draw2d.geo.Point(
(x + window.pageXOffset - this.getAbsoluteX() + this.getScrollLeft())*this.zoomFactor,
(y + window.pageYOffset - this.getAbsoluteY() + this.getScrollTop())*this.zoomFactor);
},canvas);
canvas.fromCanvasToDocumentCoordinate = $.proxy(function(x,y) {
return new draw2d.geo.Point(
((x*(1/this.zoomFactor)) + this.getAbsoluteX() - this.getScrollLeft() - window.pageXOffset),
((y*(1/this.zoomFactor)) + this.getAbsoluteY() - this.getScrollTop() - window.pageYOffset));
},canvas);
你可以发布一个链接到jsfiddle虽然=) – srquinn