javascript - 如何使用 JavaScript 在画布元素上添加加载器?
问题描述
我有一个加载巴比伦模型的画布元素。在向画布元素添加加载器时遇到问题。
画布的 HTML 代码:
<canvas id='canvas' width={120} height={120} ></canvas>
这个画布元素在里面<div>
。我想添加一个加载器而不是画布,直到画布完全加载,加载完成后在画布中显示模型并停止加载器。
使用 Babylon 在画布中显示模型的代码已经完成,剩下的就是在画布上添加加载器。
此外,我必须在不更改 HTML 代码或向 div 添加 id 的情况下执行此操作。
我无法显示整个代码,但这是脚本的前两行,它开始在画布中加载模型。
加载画布代码:
var canvas = document.getElementById('canvas');
var engine = new BABYLON.Engine(canvas, true);
........
解决方案
您可以在函数开始时使用 javascript createElement 创建加载器,然后在函数结束时显示:none div。
例如,您可以执行以下操作:
var ctx = document.createElement('div');
var ctxPar = document.createElement('div');
ctxPar.setAttribute('id', 'parentModelLoaderdiv');
ctx.setAttribute('id', 'modelLoader');
ctxPar.append(ctx);
canvas.after(ctxPar);
console.log(ctx);
document.getElementById(option).style.display = 'none';
document.getElementById('modelLoader').style.display = 'block';
现在,当画布准备好显示时,在函数结束时执行以下操作:
document.getElementById(canvasClass).style.display = 'inline-block';
document.getElementById('parentModelLoaderdiv').remove();
推荐阅读
- python - 二元分类问题的低准确率
- java - JavaFX 无法从资源文件夹加载图像
- python - 使用 imshow (OpenCV) 显示图像时出现问题
- flutter - java.lang.IllegalArgumentException:服务未注册:lp@f7269a6
- amazon-web-services - 如何使用 AWS Lambda 节点函数插入 mysql,然后将 JSON 返回到 websocket 客户端
- javascript - Mongoose Pre 和 Post 钩子:停止执行查询
- node.js - 如何在 nodejs express 应用程序初始化时插入数据
- sql - 编写查询以查找视频租赁组织收入最高的电影
- vb.net - 根据组合框中所选项目的索引从排序列表中检索值
- javascript - 是否可以在 api 端点的末尾实现一个 cachebreaker 以便在 Javascript 中重新加载 jpeg?