З'єднання ліній зі svgs було вагомим знімком для мене, і воно спрацювало чудово ... Перш за все, масштабована векторна графіка (SVG) - це формат векторного зображення на основі XML для двовимірної графіки з підтримкою інтерактивності та анімації. Зображення SVG та їх поведінка визначаються у текстових файлах XML. ви можете створити svg в HTML за допомогою <svg>
тегу. Adobe Illustrator - одне з найкращих програм, що використовуються для створення складних svgs за допомогою шляхів.
Процедура приєднання двох дівок за допомогою рядка:
створіть дві діви і надайте їм будь-яке положення, як вам потрібно
<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>
(задля пояснення я роблю деякі вбудовані стилі, але завжди добре зробити окремий файл css для стилізації)
<svg><line id="line1"/></svg>
Тег лінії дозволяє нам провести лінію між двома вказаними точками (x1, y1) та (x2, y2). (для довідкового відвідування w3schools.) ми їх ще не вказали. тому що ми будемо використовувати jQuery для редагування атрибутів (x1, y1, x2, y2) тегів рядка.
в <script>
тег написати
line1 = $('#line1');
div1 = $('#div1');
div2 = $('#div2');
Я використовував селектори для вибору двох дівок та рядків ...
var pos1 = div1.position();
var pos2 = div2.position();
position()
Метод jQuery дозволяє нам отримати поточне положення елемента. Для отримання додаткової інформації відвідайте https://api.jquery.com/position/ (ви також можете використовувати offset()
метод)
Тепер, коли ми отримали всі потрібні нам позиції, ми можемо провести лінію наступним чином ...
line1
.attr('x1', pos1.left)
.attr('y1', pos1.top)
.attr('x2', pos2.left)
.attr('y2', pos2.top);
.attr()
Метод jQuery використовується для зміни атрибутів вибраного елемента.
Все, що ми зробили у верхньому рядку, - це те, що ми змінили атрибути рядка з
x1 = 0
y1 = 0
x2 = 0
y2 = 0
до
x1 = pos1.left
y1 = pos1.top
x2 = pos2.left
y2 = pos2.top
оскільки position()
повертає два значення, одне "ліве" та інше "верхнє", ми можемо легко отримати доступ до них за допомогою .top та .left за допомогою об'єктів (тут pos1 та pos2) ...
Тепер тег рядка має дві чіткі координати, щоб провести лінію між двома точками.
Порада: додайте слухачів подій, як вам потрібно, щоб діви
Порада: переконайтесь, що ви імпортуєте бібліотеку jQuery спочатку, перш ніж щось писати в тег сценарію
Після додавання координат через JQuery ... Це буде виглядати приблизно так
Наступний фрагмент призначений лише для демонстрації, виконайте кроки вище, щоб отримати правильне рішення
<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>