我使用Chartjs来显示线图,这很好:
// get line chart canvas
var targetCanvas = document.getElementById('chartCanvas').getContext('2d');
// draw line chart
var chart = new Chart(targetCanvas).Line(chartData);
但当我试图更改图表的数据时,问题就出现了。我通过使用新数据点创建图表的新实例来更新图表,从而重新初始化画布。
这个很好用。但是,当我将鼠标悬停在新图表上时,如果我恰好经过与旧图表上显示的点对应的特定位置,则仍会触发鼠标悬停/标签,并且旧图表会突然可见。当我的鼠标在这个位置时,它仍然可见,当离开那个点时,它消失了。我不想显示旧的图表。我想把它完全去掉。
在加载新图表之前,我试图清除画布和现有图表。喜欢:
targetCanvas.clearRect(0,0, targetCanvas.canvas.width, targetCanvas.canvas.height);
和
chart.clear();
但到目前为止,这些都没有奏效。有什么办法能阻止这一切发生吗?
var myPieChart=null;
function drawChart(objChart,data){
if(myPieChart!=null){
myPieChart.destroy();
}
// Get the context of the canvas element we want to select
var ctx = objChart.getContext("2d");
myPieChart = new Chart(ctx).Pie(data, {animateScale: true});
}
几个小时前我也遇到过同样的问题。
“.clear()”方法实际上会清除画布,但(显然)它会使对象保持活动和反应状态。
仔细阅读官方文档,在“高级用法”部分,我注意到方法“.destroy()”,描述如下:
msgstr"使用这个来销毁创建的任何图表实例。这将清除存储到Chart.js中图表对象的任何引用,以及由C附加的任何关联事件侦听器hart.js.”
它确实做到了它声称的,对我来说效果很好,我建议你试试。
我对此有很大的问题
首先我尝试了.clear()
,然后我尝试了.destroy()
,并尝试将图表引用设置为空
是什么最终解决了我的问题:删除
我的特定代码(显然有一百万种方法可以做到这一点):
var resetCanvas = function(){
$('#results-graph').remove(); // this is my <canvas> element
$('#graph-container').append('<canvas id="results-graph"><canvas>');
canvas = document.querySelector('#results-graph');
ctx = canvas.getContext('2d');
ctx.canvas.width = $('#graph').width(); // resize to parent width
ctx.canvas.height = $('#graph').height(); // resize to parent height
var x = canvas.width/2;
var y = canvas.height/2;
ctx.font = '10pt Verdana';
ctx.textAlign = 'center';
ctx.fillText('This text is centered on the canvas', x, y);
};
问题内容: 在尝试了复合操作并在画布上绘制图像之后,我现在尝试删除图像并进行合成。我该怎么做呢? 我需要清除画布才能重画其他图像;这可能会持续一段时间,所以我认为每次绘制一个新矩形都不是最有效的选择。 问题答案:
我正在尝试用python、matplotlib、numpy和tkinter创建生活游戏。在用户输入行数、列数和生成活动单元格的概率后,用户将按下“生成”按钮开始游戏。我可以显示第一个画布,但除此之外,程序似乎无法更新画布。更新时(使用while循环),我希望程序首先调用更新画布的函数,然后暂停图形0.5秒,最后清除画布,以便显示下一个更新的画布。我似乎对FigureCanvasTkAgg有最大的问
我正在尝试清除JavaFX中的简单画布。 启动功能 如果用户想要加载游戏,则loadSave布尔变量集为“true” 否则,它会加载新游戏 我真的很感激你的帮助。
我正在写一个基于Object的小2D机器人游戏,所以我把整个游戏绘制在 注册一个< code>OnTouchListener,但是我如何检测球的接触呢? 另一个问题是球是一个简单的物体。如果我有一些不规则的物体,不能用半径或其他东西来描述呢?我是否使用了png的正确“技术”来构建画布控件,或者有没有更好/更简单的方法? 这是我在所有平台(JS,Android,iOS)上遇到的典型问题,我不知道解决
问题内容: 我想知道是否有可能用JS触发CSS HOVER效果,而不必使用其他类… 我尝试使用触发效果,但这不会触发CSS悬停效果。 PS:我做了一个功能,可以帮助用户使用在线CMS。帮助功能通过在图像上四处移动来显示操作方法,以显示操作方法。虚拟光标可以单击内容,显示元素等。但是我希望该虚拟光标也可以触发CSS中设置的:hover效果。 问题答案: 我知道您要做什么,但为什么不简单地这样做: 该
在这里,我得到了一个notaccepted异常,我知道原因是stateMachine.getState()是INITIAL,它不能直接将状态从INITIAL更改为THIRD。 所以我的问题是,我是否可以配置我的statemachine在第一个事件完成时自动触发第二个事件