Ich habe versucht, zwei Paare mit Zeilen Quiz übereinstimmen. Ich habe einige Bilder auf der linken Seite und einige Bilder auf der rechten Seite, und ich muss sie mit den Zeilen verbinden, wenn Sie auf ein Bildpaar klicken. Es sollte für jede Kombination funktionieren, wenn ich zum Beispiel auf Bild 1 auf der linken und Bild 3 auf der rechten Seite klicke, sollten sie mit der Linie verbunden werden. Wenn ich dann erneut auf Bild 1 rechts und Bild 2 links klicke, sollte die vorherige Zeile gelöscht werden und die neue zwischen diesen beiden Bildern erstellt werden. HTML-Schnipsel:Verbinden von Bildern mit Linien
function lineDistance(x, y, x0, y0){
return Math.sqrt((x -= x0) * x + (y -= y0) * y);
};
function drawLine(a, b, line) {
var pointA = $(a).offset();
var pointB = $(b).offset();
var pointAcenterX = $(a).width()/2;
var pointAcenterY = $(a).height()/2;
var pointBcenterX = $(b).width()/2;
var pointBcenterY = $(b).height()/2;
var angle = Math.atan2(pointB.top - pointA.top, pointB.left - pointA.left) * 180/Math.PI;
var distance = lineDistance(pointA.left, pointA.top, pointB.left, pointB.top);
// Set Angle
$(line).css('transform', 'rotate(' + angle + 'deg)');
// Set Width
$(line).css('width', distance + 'px');
// Set Position
$(line).css('position', 'absolute');
if(pointB.left < pointA.left) {
$(line).offset({top: pointA.top + pointAcenterY, left: pointB.left + pointBcenterX});
} else {
$(line).offset({top: pointA.top + pointAcenterY, left: pointA.left + pointAcenterX});
}
}
new drawLine('.a', '.b', '.line');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="question">
<div id="old" class="left_side one_half svg left">
<a href="#" data-number="1"><img class="a" src="assets/svg/Kerze.svg"></a>
<a href="#" data-number="2"><img src="assets/svg/Telefon.svg"></a>
<a href="#" data-number="3"><img src="assets/svg/Schreibmaschine.svg"></a>
<a href="#" data-number="4"><img src="assets/svg/TV_old.svg"></a>
<a href="#" data-number="5"><img src="assets/svg/Zeitstopper.svg"></a>
<a href="#" data-number="6"><img src="assets/svg/Besen.svg"></a>
<a href="#" data-number="7"><img src="assets/svg/Waschen.svg"></a>
</div>
<div class="left_side one_half svg right">
<a href="#" data-letter="NS"><img src="assets/svg/Iwatch.svg"></a>
<a href="#" data-letter="RT"><img src="assets/svg/Laptop.svg"></a>
<a href="#" data-letter="TE"><img src="assets/svg/Staubsauger.svg"></a>
<a href="#" data-letter="IN"><img src="assets/svg/Waschmaschine.svg"></a>
<a href="#" data-letter="EI"><img src="assets/svg/TV_new.svg"></a>
<a href="#" data-letter="AL"><img src="assets/svg/Gluehbirne.svg"></a>
<a href="#" data-letter="BE"><img class="b" src="assets/svg/Iphone.svg"></a>
<div class="line"></div>
</div>
</div>
schaffe ich eine Linie zwischen zwei Bildern zu machen (von Klasse A bis Klasse b), und es ist immer genau berechnet auf der rechten Winkel, aber ich kann es scheint nicht so zu funktionieren, wie ich es oben beschrieben habe. Irgendwelche Ideen? Vielen Dank.
Vielen Dank für answer.That ist ein guter Anfang, nur ein Problem besteht, dass Linie nur für ein Paar wird zeigen, wenn ich auf ein anderes Paar og Bilder klicken, wird vorherige Zeile gegangen, und auch, es funktioniert gut, wenn Sie auf Bild rechts klicken, das ist unter Bild links, wenn ich versuchte, Bild rechts zu paaren, die über Bild links ist, verbindet die Linie nicht gut. –