[javascript] Cytoscape.js에서 그래프의 특정 요소를 드래그하여 이동하는 방법은 무엇인가요?

먼저, Cytoscape.js 라이브러리를 HTML 페이지에 추가합니다. cytoscape.js 파일을 다운로드하거나, CDN을 통해 가져올 수 있습니다.

<script src="https://unpkg.com/cytoscape/dist/cytoscape.min.js"></script>

그 후, 그래프를 생성하고 드래그 이동 기능을 활성화합니다. 아래는 예제 코드입니다.

<!DOCTYPE html>
<html>
<head>
  <title>Cytoscape.js Dragging Example</title>
  <script src="https://unpkg.com/cytoscape/dist/cytoscape.min.js"></script>
</head>
<body>
  <div id="cy"></div>

  <script>
    document.addEventListener("DOMContentLoaded", function() {
      var cy = cytoscape({
        container: document.getElementById("cy"),
        elements: [
          { data: { id: "node1" }, position: { x: 100, y: 100 } },
          { data: { id: "node2" }, position: { x: 200, y: 200 } },
          { data: { id: "edge1", source: "node1", target: "node2" } }
        ],
        style: [
          { selector: "node", style: { "background-color": "#blue" } },
          { selector: "edge", style: { "width": 3 } }
        ]
      });

      cy.nodes().forEach(node => {
        node.draggable(true); // 요소를 드래그 가능하게 설정
      });
    });
  </script>
</body>
</html>

위 코드에서 cytoscape() 함수를 호출하여 Cytoscape.js 인스턴스를 생성합니다. container 옵션은 그래프가 표시될 <div> 요소를 지정합니다. elements 옵션으로 그래프 요소를 정의하고, style 옵션으로 그래프의 스타일을 지정합니다.

cy.nodes().forEach()를 사용하여 그래프의 모든 노드를 선택하고, draggable(true)로 드래그 가능하도록 설정합니다.

이제 웹 페이지를 열어서 그래프 요소를 드래그하여 이동할 수 있습니다.