Comment tracer une ligne entre deux éléments en utilisant JQuery et en rafraîchissant cette ligne?
Je suis à l'aide de JQuery-UI draggables et les droppables pour dupliquer des éléments sur une div.
Quelle est la meilleure façon de tracer une ligne entre les éléments d'une page à l'aide de JQuery.
Quelle est la meilleure manière d'actualiser les lignes sur la page? Je vais avoir plusieurs lignes sur la page et que vous souhaitez uniquement mettre à jour une ligne plutôt que d'actualiser chaque ligne.
source d'informationauteur StuperUser
Vous devez vous connecter pour publier un commentaire.
J'ai maintenant ce travail.
Dans mon expérience, ne pas utiliser jquery.svg, il peut avoir été la pression de le résoudre sans avoir à apprendre mon chemin autour d'un autre plugin, mais je l'ai trouvé plus de tracas que ce qu'il valait et causé des problèmes de compatibilité.
Il est possible de résoudre en utilisant le HTML5 canvas et excanvas script de compatibilitéet un grand html5 procédure pas à pasMAIS à cause de la façon dont le HTML5 canvas fonctionne, il faut que tous les linse sur la toile sont détruits et redessiné si une ligne doit être supprimé ou sa position doit être mis à jour.
Les éléments que j'ai tracer des lignes entre sont à l'intérieur d'un élément parent qui représente une relation. L'enfant les éléments représentent un début et une fin, donc je peux redessiner l'ensemble de ces relations par l'obtention d'une collection des parents par exemple à l'aide
$('.relationshipClass')
et l'interrogation de l'ensemble des éléments enfants à obtenir les points de la ligne.Pour utiliser ce code, vous aurez à venir avec une approche pour obtenir plus facilement la ligne de points disponibles pour les redessiner.
Balisage:
Belle et simple, un html
<div>
afin de conserver tous les éléments qui sont établis entre (probablement JQuery UI draggables), et un<canvas>
qui seront dans la même positionCSS:
Ne pas contrôler la
<canvas>
de l'élément de largeur avec CSS, voir Question sur Toile streching. La Position de la<canvas>
dans la même position que le<div>
et derrière tout ça (avec le z-index), cela permettra de montrer les lignes de derrière les<div>
et de prévenir la<canvas>
de blocage de tout faire glisser et déposer des interactions avec les<div>
's enfants.Javascript approche:
Créer des méthodes de l'utilitaire: le code de l'exemple est à l'intérieur d'un Plugin JQuery qui contient:
Lorsque vous ajoutez une nouvelle ligne ou d'ajuster la position d'une ligne, vous détruisez les lignes existantes et à en tirer toutes les lignes.
Vous pouvez mettre le code ci-dessous dans les fonctions ou laisser comme un plugin.
Code Javascript:
N. B. pas testé après anonymisation.
Vous pouvez maintenant appeler ces fonctions de gestionnaires d'événements (par exemple,JQuery UI événement glisser) pour dessiner des lignes.
Faire un rh ou de la div avec 1px de hauteur arrière-plan, et d'animer sa largeur à l'aide de jquery en cas de besoin.