Wie zu zeichnen eine Linie zwischen 2 Elementen mit JQuery und erfrischend?
Bin ich mit Hilfe von JQuery-UI draggables und droppables zum Klonen von Elementen auf einer div.
Was ist der beste Weg, eine Linie zu ziehen zwischen den Elementen auf einer Seite mit JQuery.
Was ist der beste Weg, um zu aktualisieren Linien auf der Seite? Ich habe mehrere Zeilen auf der Seite und wollen nur das aktualisieren einer bestimmten Linie und nicht als refresh jede Zeile.
InformationsquelleAutor der Frage StuperUser | 2011-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich jetzt diese Arbeit.
Meiner Erfahrung, nicht mit jquery.svg kann es haben, war der Druck, es zu lösen, ohne zu lernen, meinen Weg in einem anderen plugin, aber ich fand es mehr ärger als es Wert war und verursachte Kompatibilitätsprobleme.
Ist es möglich, die Lösung mit dem HTML5-canvas und excanvas-Kompatibilität-Skriptund eine großartige html5-DurchlaufSONDERN weil, wie die HTML5-canvas arbeitet, ist es erforderlich, dass alle, die linse auf die Leinwand zerstört sind und neu gezeichnet, wenn in einer Zeile muss entfernt werden, oder seine position aktualisiert werden muss.
Elemente, die ich zeichnen von Linien zwischen sind in einem übergeordneten element, der für eine Beziehung. Die untergeordneten Elemente repräsentieren Anfang und Ende, so kann ich das Neuzeichnen alle diese Beziehungen, indem Sie eine Sammlung der Eltern mit z.B.
$('.relationshipClass')
und verhören Sie die set-Elemente' Kinder bekommen die Punkte der Linie.Um diesen code zu verwenden, die Sie haben zu kommen mit einem Ansatz zu leicht für die Linie-Punkte neu zu zeichnen.
Markup:
Schön und einfach, eine html -
<div>
zu halten-Elemente, die gezogen werden zwischen (wahrscheinlich JQuery UI draggables), und eine<canvas>
werden in der gleichen positionCSS:
Keine Kontrolle über die
<canvas>
element Breite mit CSS, siehe Frage auf Leinwand Stretching. Position der<canvas>
in der gleichen position wie die<div>
und dahinter (mit dem z-index), wird dies zeigen die Linien bis hinter die<div>
und verhindern, dass die<canvas>
blockieren jede drag-and-drop-Interaktionen mit der<div>
's Kinder.Javascript:
Erstellen Methoden: das Beispiel-code in einem JQuery-plugin enthält:
Beim hinzufügen einer neuen Zeile oder passen Sie die position einer Linie, Sie zu zerstören, die bestehenden Linien und das zeichnen der Linien.
Sie können den code unten in den konventionellen Funktionen oder verlassen wie ein plugin.
Javascript-code:
N. B. nicht getestet nach Anonymisierung.
Nun können Sie diese Funktionen aufrufen von Ereignis-Handlern (z.B. JQuery UI drag event), um Linien zu zeichnen.
InformationsquelleAutor der Antwort StuperUser
Machen ein hr-oder ein div mit 1px Höhe hintergrund festlegen und animieren von seiner Breite mit jquery, wenn nötig.
InformationsquelleAutor der Antwort hungryMind