是的,可以使用editWithoutDrag选项并且仍然能够移动箭头的起始和终止点。
以下是一个示例代码,演示了如何使用VisJS库创建一个编辑边缘的功能,并保持箭头的移动:
<!DOCTYPE html>
<html>
<head>
<title>VisJS Edit Edge Example</title>
<style type="text/css">
#network {
width: 600px;
height: 400px;
border: 1px solid lightgray;
}
</style>
<script type="text/javascript" src="https://unpkg.com/vis-network/standalone/umd/vis-network.min.js"></script>
</head>
<body>
<div id="network"></div>
<script type="text/javascript">
// 创建一个空的数据集合
var nodes = new vis.DataSet();
var edges = new vis.DataSet();
// 创建一个网络实例
var container = document.getElementById('network');
var data = {
nodes: nodes,
edges: edges
};
var options = {
manipulation: {
enabled: true,
addEdge: function(edgeData, callback) {
// 在添加边缘之前,将editWithoutDrag选项设置为true
edgeData.editWithoutDrag = true;
callback(edgeData);
}
}
};
var network = new vis.Network(container, data, options);
// 添加一些节点和边缘
nodes.add([{id: 1, label: 'Node 1'}, {id: 2, label: 'Node 2'}, {id: 3, label: 'Node 3'}]);
edges.add([{from: 1, to: 2, label: 'Edge 1'}, {from: 2, to: 3, label: 'Edge 2'}]);
</script>
</body>
</html>
在上面的示例中,我们通过将editWithoutDrag选项设置为true来启用边缘的编辑功能,以便可以在添加边缘时进行编辑。这样就可以保持箭头的移动,并且不会触发边缘拖动。
请注意,示例代码中使用的VisJS库是通过CDN引入的,您也可以将其下载到本地并在代码中引用。