【发布时间】:2018-08-24 12:12:53
【问题描述】:
以下是我编写的一些代码,但它的工作方式与预期不符。 我使用 SnapSVG 插件(但没关系)。
const pie = Snap('#pie-svg');
const pies = pie.selectAll('.pie');
const icons = pie.selectAll('.icon');
const ROTATIONS = {
'pie-1': 180,
'pie-2': 120,
'pie-3': 60,
'pie-4': 0,
'pie-5': -60,
'pie-6': -120,
};
function pieClickHandler(e) {
const id = this.attr('id');
// const pieCoords = pie.getBBox();
pie.animate({
transform: `r${ROTATIONS[id]},0,0`
}, 3000, mina.easeout);
icons.forEach((icon) => {
const iconCoords = icon.getBBox();
icon.animate({
transform: `r${-1 * ROTATIONS[id]},${iconCoords.cx},${iconCoords.cy}`
}, 3000, mina.easeout);
});
}
pies.forEach(function (pie) {
pie.click(pieClickHandler);
});
【问题讨论】:
-
请提供包含您的 SVG 的完整示例(例如在 JSFiddle 上)。
标签: javascript animation svg snap.svg