Я пытаюсь создать своего рода закругленную карусель с 4 ломтиками, щелкая по ломтику, он расширяется примерно до 2/3 круга, показывая его содержимое (другой ломтик будет так же уменьшаться). В основном я начал с «растущего пирога» Рафаэля demo http://raphaeljs.com/growing-pie.html и немного изменен для получения этого вид поведения.
Но я застрял на последнем шаге, когда фрагмент щелкнут и расширен, он должен повернуться и поместиться сверху (угол смещения 0 °) ... Я думаю, что мне нужно знать точный угол каждого фрагмента в анимации () и произвольно изменить ее, но я не могу понять, как это сделать.
function animate(ms) {
var start = 150,
val;
for (i = 0; i <= 3; i++) {
val = 360 / total * data[i];
paths[i].animate({
segment: [200, 200, 150, start, start += val]
}, ms || 1500, "bounce");
paths[i].angle = start - val / 2;
}
rotateCircle();
}
Здесь http://jsfiddle.net/ExFCb/32/ есть пример, над которым я работаю