Das Verbinden von Linien mit SVGs war für mich einen Versuch wert und hat perfekt funktioniert. Zunächst einmal ist Scalable Vector Graphics (SVG) ein XML-basiertes Vektorbildformat für zweidimensionale Grafiken mit Unterstützung für Interaktivität und Animation. SVG-Bilder und ihr Verhalten werden in XML-Textdateien definiert. Sie können ein SVG in HTML mit <svg>
Tag erstellen . Adobe Illustrator ist eine der besten Software zum Erstellen komplexer SVGs mithilfe von Pfaden.
Vorgehensweise zum Verbinden von zwei Divs über eine Linie:
Erstellen Sie zwei Divs und geben Sie ihnen eine beliebige Position
<div id="div1" style="width: 100px; height: 100px; top:0; left:0; background:#e53935 ; position:absolute;"></div>
<div id="div2" style="width: 100px; height: 100px; top:0; left:300px; background:#4527a0 ; position:absolute;"></div>
(Zur Erklärung mache ich ein Inline-Styling, aber es ist immer gut, eine separate CSS-Datei für das Styling zu erstellen.)
<svg><line id="line1"/></svg>
Mit dem Linien-Tag können wir eine Linie zwischen zwei angegebenen Punkten (x1, y1) und (x2, y2) zeichnen. (für einen Referenzbesuch w3schools.) Wir haben sie noch nicht spezifiziert. weil wir jQuery verwenden werden, um die Attribute (x1, y1, x2, y2) des Zeilen-Tags zu bearbeiten.
im <script>
Tag schreiben
line1 = $('#line1');
div1 = $('#div1');
div2 = $('#div2');
Ich habe Selektoren verwendet, um die beiden Divs und Linien auszuwählen ...
var pos1 = div1.position();
var pos2 = div2.position();
Mit der jQuery- position()
Methode können wir die aktuelle Position eines Elements ermitteln. Weitere Informationen finden Sie unter https://api.jquery.com/position/ (Sie können auch die offset()
Methode verwenden).
Nachdem wir alle Positionen erhalten haben, die wir brauchen, können wir die folgende Linie ziehen ...
line1
.attr('x1', pos1.left)
.attr('y1', pos1.top)
.attr('x2', pos2.left)
.attr('y2', pos2.top);
Die jQuery- .attr()
Methode wird verwendet, um die Attribute des ausgewählten Elements zu ändern.
Alles, was wir in der obigen Zeile getan haben, ist, dass wir die Attribute der Zeile von geändert haben
x1 = 0
y1 = 0
x2 = 0
y2 = 0
zu
x1 = pos1.left
y1 = pos1.top
x2 = pos2.left
y2 = pos2.top
als position()
Erträge zwei Werte, ‚links‘ ein und andere ‚top‘, können wir sie leicht zugänglich machen mit .top und .Left die Objekte mit (hier pos1 und pos2) ...
Jetzt hat das Linien-Tag zwei unterschiedliche Koordinaten, um eine Linie zwischen zwei Punkten zu ziehen.
Tipp: Fügen Sie nach Bedarf Ereignis-Listener zu Divs hinzu
Tipp: Stellen Sie sicher, dass Sie zuerst die jQuery-Bibliothek importieren, bevor Sie etwas in das Skript-Tag schreiben
Nach dem Hinzufügen von Koordinaten über JQuery ... sieht es ungefähr so aus
Das folgende Snippet dient nur zu Demonstrationszwecken. Befolgen Sie die obigen Schritte, um die richtige Lösung zu erhalten
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1" style="width: 100px; height: 100px; top:0; left:0; background:#e53935 ; position:absolute;"></div>
<div id="div2" style="width: 100px; height: 100px; top:0; left:300px; background:#4527a0 ; position:absolute;"></div>
<svg width="500" height="500"><line x1="50" y1="50" x2="350" y2="50" stroke="red"/></svg>