Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使脚本加载速度快于html内容_Javascript_Html_Canvas_Download - Fatal编程技术网

Javascript 使脚本加载速度快于html内容

Javascript 使脚本加载速度快于html内容,javascript,html,canvas,download,Javascript,Html,Canvas,Download,我正在使用canvas和javascript创建一个启动页面,该页面在HTML之上包含一个“可擦除”层。可擦除画布层完全覆盖了背景中的html内容,在用户开始擦除之前,它是不可见的 但是,加载时,html内容首先显示,然后出现可擦除层。有没有一种方法可以让可擦除画布层首先显示,直到被擦除,用户才能看到html内容 我试着将可擦除画布和它使用的脚本放在HTML内容之前,但仍然不起作用 对如何解决这个问题有什么建议吗 谢谢 您可以尝试隐藏所有HTML内容,然后使用JavaScript代码在需要时使其

我正在使用canvas和javascript创建一个启动页面,该页面在HTML之上包含一个“可擦除”层。可擦除画布层完全覆盖了背景中的html内容,在用户开始擦除之前,它是不可见的

但是,加载时,html内容首先显示,然后出现可擦除层。有没有一种方法可以让可擦除画布层首先显示,直到被擦除,用户才能看到html内容

我试着将可擦除画布和它使用的脚本放在HTML内容之前,但仍然不起作用

对如何解决这个问题有什么建议吗


谢谢

您可以尝试隐藏所有HTML内容,然后使用JavaScript代码在需要时使其可见

您的问题似乎是在解析HTML之前加载了脚本。您可以有以下几种选择:

1) 让JavaScript创建HTML内容,但也要确保它首先创建可擦除画布。您可以通过几种方法来实现这一点,甚至可以使用XMLHttpRequest()来获取HTML内容

2) 正如@Beans所提到的,您可以有如下内容:

<script>
document.body.addEventListener('load', function () {
    // your canvas code here (make sure it get displayed on top of body)
    document.body.style.display = null;
});
</script>
<body style="display: none">
Some stuff here
</body>

document.body.addEventListener('load',function(){
//您的画布代码在这里(确保它显示在主体顶部)
document.body.style.display=null;
});
这里有些东西

在代码中添加
,然后在加载jQuery后调用
$('body').show()@Joshua可擦除画布将被放置在身体内部,以便隐藏它不起作用。相反,你可以将所有非画布代码包装在一个
div
中,并将你的解决方案应用于此。公平地说,我的想法直接指向了“核心解决方案”。将所有html内容包装在一个隐藏的div中,并在画布加载后显示。将画布放在包装好的html之外。