网站地图    收藏   

主页 > 后端 > php资料库 >

mxGraph居中的方法_自学php网

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] mxGraph自带了zoom相关方法,比如zoomIn和zoomOut,一级zoomTo。但有点遗憾的是没有居中的一个选项,虽然graph.fit()可以适应画布,但怎么看都别扭,于是写了一个原型居中画布的方法 Code: 2...

mxGraph自带了zoom相关方法,比如zoomIn和zoomOut,一级zoomTo。但有点遗憾的是没有居中的一个选项,虽然graph.fit()可以适应画布,但怎么看都别扭,于是写了一个原型居中画布的方法

Code:

20 mxGraph.prototype.zoomToCenter = function(margin){
var bounds = this.getGraphBounds();
margin = margin || 10;
this.container.style.overflow = "hidden";
this.view.setTranslate(
-bounds.x -(bounds.width - this.container.clientWidth)/ 2,
-bounds.y - (bounds.height - this.container.clientHeight) / 2
);
while( (bounds.width + margin * 2) > this.container.clientWidth
|| (bounds.height + margin * 2) > this.container.clientHeight ){
this.zoomOut();
bounds = this.getGraphBounds();
}
this.container.style.overflow = "auto";
};

参数:

margin 可选,边距,默认10

用法:


 graph.zoomToCenter(); // 默认10边距
graph.zoomToCenter(30); // 30边距

其实主要是利用graph.getGraphBounds()与graph.view.setTranslate()方法居中,然后来个while循环,如果内容宽高比container大就zoomOut()缩小,直到内容小于container的宽高为止。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论