css 饼图 - 与SVG

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css 饼图 - 与SVG相关的知识,希望对你有一定的参考价值。

{"view":"split-vertical","fontsize":"100","seethrough":"","prefixfree":"1","page":"css"}
function $$(selector, context) {
	context = context || document;
	var elements = context.querySelectorAll(selector);
	return Array.prototype.slice.call(elements);
} 

 $$('.pie').forEach(function(pie) {
	var p = parseFloat(pie.textContent);
	var NS = "http://www.w3.org/2000/svg";
	var svg = document.createElementNS(NS, "svg");
	var circle = document.createElementNS(NS, "circle");
	var title = document.createElementNS(NS, "title");
	
	circle.setAttribute("r", 16);
	circle.setAttribute("cx", 16);
	circle.setAttribute("cy", 16);
	circle.setAttribute("stroke-dasharray", p + " 100");
	
	svg.setAttribute("viewBox", "0 0 32 32");
	title.textContent = pie.textContent;
	pie.textContent = '';
	svg.appendChild(title);
	svg.appendChild(circle);
	pie.appendChild(svg);
});
<div class="pie">20%</div>
<div class="pie">60%</div>
<div class="pie animated">0%</div>
/**
 * Pie charts — with SVG
 */

.pie {
	width: 100px;
	height: 100px;
	display: inline-block;
	margin: 10px;
	transform: rotate(-90deg);
}

svg {
	background: yellowgreen;
	border-radius: 50%;
}

circle {
	fill: yellowgreen;
	stroke: #655;
	stroke-width: 32;
}

@keyframes grow { to { stroke-dasharray: 100 100 } }

.pie.animated circle {
	animation: grow 2s infinite linear;
}

以上是关于css 饼图 - 与SVG的主要内容,如果未能解决你的问题,请参考以下文章

即使 Web 浏览器控制台中没有错误,d3 js 饼图也没有显示。和 SVG 正在追加

Raphael JS 的径向饼图菜单

渐进式<;svg>;饼图、甜甜圈图、条形图和折线图

CSS 样式转换与 svg 转换

前端如何实现立体饼图,柱状图,像下面这种?

GPU 加速 CSS 动画与 SVG 原生动画