Я пытаюсь заполнить границы круга, в зависимости от переменной, например, так:Заполните внешний круг, с Рафаэлем JS
Я нашел this example, но это не то, что я хочу. Я хочу, чтобы внешняя граница заполнялась снизу вверх, по обе стороны от круга.
Вот код, у меня есть:
var completion = '5%';
drawcircle("js-raphael-completion", completion);
function drawcircle(div, rate) {
var archtype = Raphael(document.getElementsByClassName(div)[0], "90%", "90%");
archtype.customAttributes.arc = function (xloc, yloc, value, total, R) {
var alpha = 360/total * value,
a = (90 - alpha) * Math.PI/180,
x = xloc + R * Math.cos(a),
y = yloc - R * Math.sin(a),
path;
if (total == value) {
path = [
["M", xloc, yloc - R],
["A", R, R, 0, 1, 1, xloc - 0.01, yloc - R]
];
} else {
path = [
["M", xloc, yloc - R],
["A", R, R, 0, +(alpha > 180), 1, x, y]
];
}
return {
path: path
};
};
// inner ring
var circle = archtype.circle("50%", "50%", "40%").attr({
"stroke": "#2787d3",
"stroke-width": 1
});
// text
var text = archtype.text("95%", "50%", rate).attr({
'font-size': 14, 'font-family': 'Avenir',
"fill": "#2787d3"
});
// outer ring (filling)
var my_arc = archtype.path().attr({
"stroke": "#2787d3",
"stroke-width": 10,
arc: [100, 100, 0, 100, 50]
});
// animation of outer ring
my_arc.animate({
arc: [100, 100, 100, 100, 50]
}, 1000);
}
Смотреть демо: http://jsfiddle.net/SUBn6/
В настоящее время, потому что я не использую проценты для наружного кольца (закачка), он не центрирован с границей круг (внутренний).
Другой вопрос, который у меня есть, - это номер «5%». Он должен следить за внешним кольцом (заполнением), когда он заполняется снизу вверх ...
Любые идеи? Благодарю.
Спасибо за это. Пара проблем. Когда внешний круг начинает заполняться, на внутреннем круге есть некоторое совпадение. Но это фиксировано ближе к концу (вверху): http://oi41.tinypic.com/x0occ0.jpg. И вторая проблема связана с Рафаэлем. Возможно ли сделать путь горизонтальным, а не вращаться вокруг круга? Трудно объяснить (см. Скриншот выше) ... Как если бы вы заполняли эту пустую границу жидкостью ... – Alex