學(xué)習(xí)twaver,API使用記錄
標(biāo)簽:
JavaScript
twaver最基本的点
网元 Element:Node、Link
容器 Box
画布 Network
// 容器
var box = new twaver.ElementBox();
// 画布
var network = new twaver.vector.Network(box);
var topo = document.getElementById("topo");
topo.appendChild(network.getView());
network.adjustBounds({x:0, y:0, width:1000, height:500});
// 网元Node
var node = new twaver.Node();
node.setName("TWaver");
box.add(node);
// 网元Link
var link1 = new twaver.Link(node1, node);
link1.setName("Hello!");
box.add(link1);
Network上获取鼠标事件
监听鼠标事件: mousedown、mousemove、mouseup、keydown等
network.getView().addEventListener(MouseEvent', function (e) {});
/*为选中的网元,增加阴影效果*/
var selectionModel = box.getSelectionModel();
selectionModel.setSelectionMode("singleSelection");
twaver.Styles.setStyle("shadow.yoffset", 0);
twaver.Styles.setStyle("shadow.xoffset", 0);
var mouseObj = null;
network.getView().addEventListener("mousemove", function (e) {
var element = network.getElementAt(e);
if (element instanceof twaver.Node) {
mouseObj= element;
selectionModel.setSelection(element);
} else if (mouseLocation) {
selectionModel.removeSelection(mouseObj);
}
});
Network缩放
物理缩放:network.setZoomManager(new twaver.vector.PhysicalZoomManager(network));
逻辑缩放:network.setZoomManager(new twaver.vector.LogicalZoomManager(network));
混合缩放:network.setZoomManager(new twaver.vector.MixedZoomManager(network));
<html>
<head>
</head>
<body>
<div id="topo" style="display:block;margin:0 auto;width:1000px;height:1000px;position:relative;">
玩一玩twaver
</div>
<script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="./twaver.js"></script>
<script type="text/javascript">
window.onload = function () {
var topo = document.getElementById("topo");
var box = new twaver.ElementBox();
var network = new twaver.vector.Network(box);
topo.appendChild(network.getView());
network.adjustBounds({x:0, y:0, width:700, height:700});
var x=300, y=300, r=200;
var center = new twaver.Node();
center.setLocation(x, y);
box.add(center);
var count=20;
for(var i=0;i<count; i++){
var node = new twaver.Node();
var angle = i * 2 * Math.PI / count ;
var radius = r*( i%2 * 0.5 + 0.5);
node.setLocation(x+radius*Math.cos(angle), y+radius*Math.sin(angle));
node.setLayerId('node');
box.add(node);
var link = new twaver.Link(center, node);
link.setStyle('link.width', 1);
link.setStyle('link.color', 'orange');
link.setLayerId('link');
box.add(link);
}
var linkLayer=new twaver.Layer('link');
box.getLayerBox().add(linkLayer);
box.getLayerBox().moveToTop(linkLayer);
// 默认情况下,就是使用了物理缩放
//network.setZoomManager(new twaver.vector.PhysicalZoomManager(network));
//network.setZoomManager(new twaver.vector.LogicalZoomManager(network));
network.setZoomManager(new twaver.vector.MixedZoomManager(network));
console.log(network.getGraphicsZoom(),network.getSizeZoom(),network.getLocationZoom());// 1,1,1
// 以sizeZoom为标准,当值低于0.8的时候,label不显示,低于0.6时,label2不显示,低于0.5时,告警冒泡不显示,并且link不显示
network.setZoomVisibilityThresholds({
zoomName : 'sizeZoom',
link : 0.5,
label : 1.1,
label2 : 0.6,
alarmBalloon : 0.5,
});
}
</script>
</body>
</html>
twaver注册图片
/**
* name: 图片的注册名称。后续使用中就使用该name进行引用。例如"preview_icon"、"my_node_image"等;
* source: 图片源。例如:"images/loading.gif";
* width: 图片的注册宽度;
* height: 图片的注册高度;
*/
twaver.Util.registerImage : function (name, source, width, height)
點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)