javascript - 即使代码在那里,画布也不显示
问题描述
我正在尝试以编程方式在我的模块中的魔镜仪表板上显示一个仪表。
以下是我的代码示例:
var indoorGauge = document.createElement('canvas');
indoorGauge.id = 'indoorGauge';
...
indoorGauge.setAttribute('data-animation-target','plate');
indoorPressure.appendChild(indoorGauge);
insideTele.appendChild(indoorPressure);
wrapper.appendChild(insideTele);
仪表不显示或渲染。我发现奇怪的是,当我检查元素时,画布就在那里并且它可以工作,因为当我剪切元素并重新粘贴它时,它会显示出来并完美地工作!
如果我“剪切”和“粘贴”上面的画布元素,仪表将显示得很好。
解决方案
根据文档,如果你想用 Javascript 加载仪表,你应该使用他们的 API。
const indoorGauge = document.createElement('canvas');
indoorGauge.id = "indoorGauge"
document.body.appendChild(indoorGauge);
new LinearGauge({
renderTo: 'indoorGauge'
}).draw();
<script src="https://unpkg.com/canvas-gauges@2.1.7/gauge.min.js"></script>
我想这是因为您正在使用 Javascript 附加画布,但没有使用仪表 API,这就是为什么您在第一次添加它时看到脚本没有拾取动态创建的画布元素的问题
推荐阅读
- android - 如何在 Android 6.0 中正确请求位置权限?
- c# - GridView - 打开带有 ID 的新选项卡自定义按钮
- ios - 使用更新查询更新 sqlite 表中的值时出现问题
- xml - 如何在 MarkLogic 中包含子元素作为单词查询的一部分
- windows - “windbg”以系统帐户运行时无法加载符号
- sql-server - 什么图像用于通过 bitbucket 云自动将 SSIS 包部署到 SQL Server?
- c++ - 在 ROS 中运行 OpenCV 代码 - 错误:“DescriptorMatcher”未在此范围内声明
- flutter - 颤振:什么时候重建 const 小部件?
- ubuntu - 如何解决:无法导入名称“logsumexp”
- python - 如何解决 django.core.exceptions.FieldError?