gpt4 book ai didi

html - SVG圆形动画

转载 作者:行者123 更新时间:2023-12-03 22:58:23 24 4
gpt4 key购买 nike

我正在尝试制作圆形动画,
我目前有这个:http://jsfiddle.net/gf327jxu/1/

<svg width="100" height="100" class="circle">
<circle cx="50" cy="50" r="40" />
</svg>

css:
.circle{
stroke:green;
stroke-width:10;
fill:none;
}

我希望它像圆形进度一样动画,如下所示: http://jsfiddle.net/andsens/mLA7X/但是在 SVG 中,我需要它是顺时针的,我怎样才能做到这一点,这甚至可能吗?

最佳答案

这是一个 fiddle example .

注意:我使用了 r = 57 ,因为周长是 358.1接近 360 degrees .为不同 r值,您需要计算 stroke-dasharray
非常感谢@Robert Longson、@Erik Dahlström 和@Phrogz 多年来提供的 SO 解决方案。
这个 fiddle 只是他们的调整之一。



(function() {
// math trick 2*pi*57 = 358, must be less than 360 degree
var circle = document.getElementById('green-halo');
var myTimer = document.getElementById('myTimer');
var interval = 30;
var angle = 0;
var angle_increment = 6;

window.timer = window.setInterval(function() {
circle.setAttribute("stroke-dasharray", angle + ", 20000");
myTimer.innerHTML = parseInt(angle / 360 * 100) + '%';

if (angle >= 360) {
window.clearInterval(window.timer);
}
angle += angle_increment;
}.bind(this), interval);
})()
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 300 300" preserveAspectRatio="none" style="width:300; height:300; top:0; left:0;">
<circle cx="100" cy="100" r="57" id="green-halo" fill="none" stroke="#00CC33" stroke-width="15" stroke-dasharray="0,20000" transform="rotate(-90,100,100)" />
<text id="myTimer" text-anchor="middle" x="100" y="110" style="font-size: 36px;" >0%</text>
</svg>

关于html - SVG圆形动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26178095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com