Javascript CSS中设置的圆半径,如何通过JS获取值?

Javascript CSS中设置的圆半径,如何通过JS获取值?,javascript,html,css,svg,Javascript,Html,Css,Svg,我试图设计一个圆圈,以圆周表示进度百分比。我想在JS中获得半径,但在CSS中设置圆的样式。 我使用的函数是setPercent。它通过选择半径元素并从中获取半径度量来读取圆的半径 这是有效的代码: const fn=function(){ 让circle=document.querySelector('circle.percent') 调试器 让半径=圆r.baseVal.value 设周长=2*Math.PI*半径 circle.style.strokeDasharray=`${percen

我试图设计一个圆圈,以圆周表示进度百分比。我想在JS中获得半径,但在CSS中设置圆的样式。 我使用的函数是
setPercent
。它通过选择半径元素并从中获取半径度量来读取圆的半径

这是有效的代码:

const fn=function(){
让circle=document.querySelector('circle.percent')
调试器
让半径=圆r.baseVal.value
设周长=2*Math.PI*半径
circle.style.strokeDasharray=`${percentral}${percentral}`
this.setPercent=函数(百分比){
circle.style.strokedashcoffset=(100%)/100*周长
}
}
设置超时(fn,1)
:根目录{
--背景:30384a;
--中性圆边界:#656c79;
--完成的颜色:#67ed8b;
背景:var(--背景)
}
等分法向方格{
宽度:100px;
高度:100px;
}
svg.progress-ring{
保证金:0自动;
显示:块;
}
svg.1环{
填充:透明;
笔画宽度:2;
笔画:黑色;
cx:50%;
cy:50%;
r:40%;
}
svg.progress-ring circle.percent{
过渡:所有0.5s缓解;
变换:旋转(-90度);
变换原点:50%50%;
}
svg.progress-ring circle.background{
笔划:var(--中性圆边框)
}

改用以检索值

当前,您正在从元素引用检索属性值,当您删除属性时,没有任何内容可供检索。

请改用以检索该值


当前,您正在从元素引用检索属性值,当您删除该属性时,没有任何内容可供检索。

刚刚遇到相同的问题。这起到了作用:

let radius=circle.getBoundingClientRect().width/2;

但不得不这样做似乎很愚蠢。希望有人能用更好的方式发帖。

也遇到了同样的问题。这起到了作用:

let radius=circle.getBoundingClientRect().width/2;

但不得不这样做似乎很愚蠢。希望有人能发布一个更好的方法。

现在你不能在CSS中更改圆的半径。请看一看:现在你不能在CSS中更改圆的半径。请看一下:谢谢,我也试过了,但问题是返回“40%”而不是实际像素,这与其他方法不同。我不明白为什么会发生这种情况,因为圆仍然存在,并且它有一个半径,所以能够通过元素属性获得它是有意义的。谢谢,我也尝试过了,但问题是,与其他方法不同,返回的是“40%”而不是实际像素。我不明白为什么会发生这种情况,因为圆仍然存在,它有一个半径,可以通过元素属性得到它。