Как я могу cloneNode() и преобразовать эти дуги CSS в JavaScript?

Я использую css, чтобы сделать "круговой клин", сделав круг, обрезая половину его, а затем вращая трансформацию другого прямоугольника отсечения, так что показывается только дуга в 25 градусов. Это отлично работает; пример с шестью такими дольками пирога, явно определенными здесь

Однако я хотел бы просто определить один круговой клин, а затем использовать cloneNode, чтобы сделать остальное с помощью javascript, например:

for (var i = 1; i < 6; i++) {
    var el = document.getElementById('slice1');
    var child = el.cloneNode(true);
    child.id = 'newslice'+i;
    child.style.transform = "transform:rotate("+(30+i*60)+"deg)";
    el.parentNode.appendChild(child);
}

Пример этого (нерабочего) кода здесь. Что я делаю неправильно?

1 ответ

Я ошибочно думал, что cloneNode() будет клонировать стили. Рабочее решение здесь и выглядит так:

for (var i = 1; i < 6; i++) {
    var el = document.getElementById('slice1');
    var child = el.cloneNode(true);
    child.id = 'newslice'+i;
        // set the style classes for the cloned element
    child.className = " hold";
    child.children[0].className = " pie";
        // apply its transforms
    child.style.transform = "rotate("+(30+i*60)+"deg)";
    child.children[0].style.transform = "rotate(25deg)";
    el.parentNode.appendChild(child);
}
Другие вопросы по тегам