Javascript 如何使用angularjs在visjs中添加放大缩小按钮?
需要帮助在使用angularjs时使用放大和缩小按钮,我找不到任何相关选项。请帮忙,我也提供了一个例子 代码Javascript 如何使用angularjs在visjs中添加放大缩小按钮?,javascript,angularjs,angularjs-directive,vis.js,vis.js-network,Javascript,Angularjs,Angularjs Directive,Vis.js,Vis.js Network,需要帮助在使用angularjs时使用放大和缩小按钮,我找不到任何相关选项。请帮忙,我也提供了一个例子 代码 $scope.options={ 自动调整大小:正确, 高度:'800', 宽度:“100%” }; 我从未与plunker合作过,因此我无法将我的解决方案集成到您的示例中,但我已经为它创建了一个基于visjs.org网站上一个简单网络示例的解决方案 不幸的是,目前没有可用的setScale(scale)方法,但是您可以扩展网络,直到有人实现它 var network; var zoo
$scope.options={
自动调整大小:正确,
高度:'800',
宽度:“100%”
};
我从未与plunker合作过,因此我无法将我的解决方案集成到您的示例中,但我已经为它创建了一个基于visjs.org网站上一个简单网络示例的解决方案
不幸的是,目前没有可用的setScale(scale)
方法,但是您可以扩展网络
,直到有人实现它
var network;
var zoomstep = 0.3;
function zoomin() {
network.setScale(network.getScale() - zoomstep);
}
function zoomout() {
network.setScale(network.getScale() + zoomstep);
}
vis.Network.prototype.setScale = function (scale) {
var options = {
nodes: []
};
var range = this.view._getRange(options.nodes);
var center = this.view._findCenter(range);
var animationOptions = {
position: center,
scale: scale,
animation: options.animation
};
this.view.moveTo(animationOptions);
};
vis.Network.setScale
代码取自Network.js和View.js源代码,基于getScale()
所做的工作。我不得不重做一些方法View.fit
,View.\u getRange
和View.\u findCenter
做了,但到目前为止效果很好。看看这个选项。它具有用于缩放、平移和重置视图的内置控件
您需要更改vis选项以包括navigationButtons:true
和keyboard:true
以启用keboard快捷键
$scope.options = {
autoResize: true,
height: '600',
width: '100%',
interaction: {
navigationButtons: true,
keyboard: true
}
};
检查此针对vis.js 4.21.0的更新解决方案
vis.Network.prototype.zoom = function (scale) {
const animationOptions = {
scale: this.getScale() + scale,
animation: { duration: 300 }
};
this.view.moveTo(animationOptions);
};
单击处理程序代码:
this.network.zoom(-0.5) // or 0.5 to zoom in
谢谢,看起来很好,但是我需要Angularjs方面的帮助。你能给我提供使用Angularjs的解决方案吗?对不起,我从来没有使用过Angularjs。不能给你一个很好的解决方案。但是,现在您知道如何将我的代码放入angularjs应用程序中应该不会太困难了吧?谢谢您的解决方案。我是angularjs的新手,所以我想在angularjs中找到一个解决方案。你可以用滚轮进行放大和缩小——为什么你需要单独的按钮来实现这一点?@efeder:所有用户可能都没有带滚动条的鼠标,也有一些可能使用笔记本电脑,用户可能更喜欢使用一些控件来控制这个图形。看看这个,我提供了一个类似于示例的解决方案
this.network.zoom(-0.5) // or 0.5 to zoom in