gpt4 book ai didi

javascript - 重绘 RGraph SVG 半圆图表

转载 作者:行者123 更新时间:2023-12-02 21:50:42 26 4
gpt4 key购买 nike

我有一个带有一些 SVG SemiCircular RGraph 图表的 Web 应用程序。这些 SVG 图表的初始绘制进展顺利。我想用新值即时更新其中一些图表。我在答案( How do I redraw an RGraph SVG line plot? )中看到,您首先需要清除以前的 svg,但在其之后直接运行增长/绘制函数是行不通的。图形已清除,但未使用增长函数重新绘制。可能是一些异步问题。以前有人遇到过这种行为吗?我并不是真的期待添加超时或类似的方法,并希望我可以使用 RGraph API 本身来解决它。这就是我所拥有的:

if (this._gauge){
// If the chart has already been created then clear the SVG
RGraph.SVG.clear(this._gauge.svg);
} else {
// if using SVG target the div domNode instead of the canvas element
this._gauge = new RGraph.SVG.SemiCircularProgress ({
id: this.domNode.id,
min: minValue,
max: maxValue,
value: value,
options: this._options
});
}
this._gauge.grow({ frames: this.easingDuration,
callback: dojoLang.hitch(this,function (){
// for no apparent reason, if multiple SVG gauges are added, the callback is only effective for one of the gauges randomly.
// a timeout fixes this...
window.setTimeout(dojoLang.hitch(this,function(){
this._gauge.path.onclick = dojoLang.hitch(this, function (e){
this._execMF(this.onClickMF,this._contextObj.getGuid());
});
this._gauge.path.onmousemove = dojoLang.hitch(this, function (e){
e.target.style.cursor = 'pointer';
});
}),1000);

})
});

最佳答案

我无法重现您的问题。您是否尝试过使用 Canvas 版本的半圆形进度条?如果你问我的话,使用 Canvas 会容易得多。

在切换之前,您可以尝试将调用从 RGraph.SVG.clear() 更改为 RGraph.SVG.reset() 并查看是否有任何效果。

Canvas 版本的页面是这样的:

<html>
<head>
<script src="RGraph.common.core.js" ></script>
<script src="RGraph.common.dynamic.js" ></script>
<script src="RGraph.semicircularprogress.js" ></script>

<meta name="robots" content="noindex,nofollow" />
</head>
<body>

<canvas id="cvs" width="600" height="300">[No canvas support]</canvas>

<script>
scp = new RGraph.SemiCircularProgress({
id: 'cvs',
min: 0,
max: 10,
value: 8,
options: {
}
}).grow(null, function ()
{
alert('In First grow effects callback');

})
//.on('click', function (e)
//{
// $a('Inside the click event that sets a random value');
// scp.value = RGraph.random(0,10);
// scp.grow();
//});

setTimeout(function ()
{
scp.value = 4;
scp.grow(null, function ()
{
alert('In second grow effects callback');
});
}, 3000);
</script>
</body>
</html>

关于javascript - 重绘 RGraph SVG 半圆图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60135580/

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