Ich habe ein paar mathematische Probleme in meinem Code, die ich nicht herausfinden kann.Probleme bei der Berechnung der Rotationsgrade
Wenn du auf einen der roten Kreise drückst, sollte er den nächsten Pfad nehmen (links oder rechts) und nach unten drehen, es funktioniert irgendwie, aber es gibt ein paar Probleme damit.
z.B. Wenn Sie mit "8" und dann "3" beginnen, dreht sich der Behälter nur um 45 Grad in die falsche Richtung.
Und das zweite Problem ist, dass die Zahlen herumdrehen, wenn das Rad rotiert. Hier
ist ein jsfiddle zum Code: https://jsfiddle.net/she4x2w6/10/
$('.item').click(function() {
var currentId = $('#container').data('id');
var nextId = $(this).data('id');
var currentRotation = (360/items.length) * currentId - (360/items.length);
var nextRotation = (360/items.length) * nextId - (360/items.length);
var deg;
if (currentRotation - nextRotation > 180 || nextRotation - currentRotation > 180) {
deg = nextRotation > 180 ? 360 - nextRotation : nextRotation - 360;
} else {
deg = -Math.abs(nextRotation);
}
var itemDeg = nextRotation <= 180 ? nextRotation : -Math.abs(360 - nextRotation);
$('#container').css({
transition: 'transform 0.6s',
transform: 'rotate(' + deg + 'deg)'
})
$('.item').css({
transition: 'transform 0.6s',
transform: 'rotate(' + itemDeg + 'deg)'
})
Nice work! Vielen Dank! – qua1ity