首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在draw2d-js中创建连接时如何滚动画布?

在draw2d-js中创建连接时如何滚动画布?
EN

Stack Overflow用户
提问于 2017-03-01 04:46:51
回答 2查看 500关注 0票数 1

我有两个图形,一个在我画布的可见区域,另一个在外面(在右边)。因为我联系不上另一个人,所以不可能建立联系。是否可以在创建连接时自动滚动到右侧,这样我就可以连接到该图形?

EN

回答 2

Stack Overflow用户

发布于 2017-03-09 03:23:53

不幸的是,你将不得不自己处理滚动。试试这样的东西

代码语言:javascript
复制
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.   
  }
})
票数 0
EN

Stack Overflow用户

发布于 2017-06-09 16:10:40

画布策略:

代码语言:javascript
复制
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);


        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42518432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档