jQuery 기반의 연결 구현 방법에 대한 간략한 분석

PHPz
풀어 주다: 2023-04-06 10:51:23
원래의
820명이 탐색했습니다.

웹 개발에서 사용자 경험을 향상시키기 위해 사용자 작업 안내, 데이터 표시 등을 위한 일부 대화형 효과를 사용해야 하는 경우가 많으며, 이를 기반으로 연결 효과를 사용하여 콘텐츠를 더 잘 표시할 수 있기를 바랍니다. 이번 글에서는 연결 효과를 빠르게 얻을 수 있도록 도와주는 jQuery 기반의 연결 구현 방법을 소개하겠습니다.

1. 준비

시작하기 전에 jQuery와 필요한 플러그인인 jquery.draw.js를 소개해야 합니다. HTML 파일에서 다음 코드를 사용하여 이를 도입할 수 있습니다:

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-draw/jquery.draw.js"></script>
로그인 후 복사

또한 일반적으로 연결해야 하는 노드인 페이지의 일부 요소를 정의해야 합니다. 이 기사에서는 아래와 같이 간단한 HTML 레이아웃을 사용합니다.

<div class="container">
  <div class="node" data-node-id="1"></div>
  <div class="node" data-node-id="2"></div>
  <<div class="node" data-node-id="3"></div>
  <div class="node" data-node-id="4"></div>
</div>
로그인 후 복사

이 레이아웃에는 연결해야 하는 노드인 "node"라는 4개의 DIV 요소가 포함되어 있습니다. 각 노드에는 노드의 ID를 식별하는 데 사용되는 사용자 정의 속성 "data-node-id"가 있으며 해당 값은 문자열이나 숫자일 수 있습니다.

2. 선 그리기

노드 사이에 선을 그리기 전에 먼저 몇 가지 스타일을 설정해야 합니다. CSS 파일에 다음 코드를 추가할 수 있습니다.

.node {
  width: 50px;
  height: 50px;
  border: 2px solid #ccc;
  background-color: #fff;
  border-radius: 100%;
  position: absolute;
}

.container {
  height:500px;
}
로그인 후 복사

다음으로 선 그리기 효과를 얻기 위해 jQuery 코드를 작성해야 합니다. 이 기사에서는 선 그리기 효과를 얻기 위해 jQuery.draw 플러그인에서 제공하는 API를 사용합니다. JavaScript 파일에 다음 코드를 추가할 수 있습니다.

$(function () {
  var nodes = $('.node');

  nodes.draggable({
    containment: ".container",
    start: function(e, ui) {
        ui.helper.css('z-index', 1);
    },
    stop: function(e, ui) {
        ui.helper.css('z-index', 0);
    }
  });

  var connections = [];

  function updateConnection(connection, endX, endY) {
    connection.draw('update', {
      end: [endX, endY]
    });
  }

  function createConnection(startNode, endNode) {
    var connection = $('.container').drawLine({
      strokeStyle: '#ccc',
      strokeWidth: 2,
      rounded: true,
      start: [startNode.position().left + startNode.width() / 2, startNode.position().top + startNode.height() / 2],
      end: [endNode.position().left + endNode.width() / 2, endNode.position().top + endNode.height() / 2]
    });
    connections.push({
      startNode: startNode,
      endNode: endNode,
      connection: connection
    });
  }

  function removeConnection(connectionIndex) {
    connections[connectionIndex].connection.draw('destroy');
    connections.splice(connectionIndex, 1);
  }

  nodes.click(function () {
    var startNode = $(this);

    nodes.not(startNode).click(function () {
      var endNode = $(this);
      var existingConnectionIndex = connections.findIndex(function (connection) {
        return connection.startNode.is(startNode) && connection.endNode.is(endNode);
      });

      if (existingConnectionIndex === -1) {
        createConnection(startNode, endNode);
      } else {
        removeConnection(existingConnectionIndex);
      }
    });
  });
});
로그인 후 복사

위 코드는 드래그 가능한 노드, 클릭 가능한 연결, 생성 및 삭제 등과 같은 작업을 구현하고 마우스 이벤트를 처리하고 연결을 제어하는 ​​일부 이벤트 수신 기능도 추가합니다. 라인 객체 생성 및 삭제. 구현 과정에서 ".drawLine()" 메소드와 같이 jQuery.draw 플러그인에서 제공하는 API를 사용하여 연결 선 객체를 생성하고 선 색상이나 선과 같은 다양한 스타일을 설정할 수 있습니다. 너비 등 또한, 생성된 연결선 개체를 "connections" 배열에 저장하여 연결선을 삭제해야 할 때 빠르게 작업할 수 있도록 하였습니다.

3. 효과 표시 구현

위 코드를 사용하면 연결 효과를 성공적으로 구현하고 페이지에서 관련 작업을 수행할 수 있습니다. 연결선은 마우스 지점에 따라 동적으로 표시됩니다.

본 글에서는 jQuery 기반 연결 구현 방법을 소개하고, 코드 예제를 통해 구체적인 구현 단계와 주의사항을 설명합니다. 독자는 이 방법에 따라 그림과 텍스트로 상호작용 효과를 얻을 수 있어 웹사이트 상호작용성이 크게 향상됩니다. 가시성은 사용자에게 더욱 친숙한 경험을 선사합니다.

위 내용은 jQuery 기반의 연결 구현 방법에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!