javascript - 预加载器直到加载所有文件/音频

标签 javascript jquery html css image-preloader

我有一些显示和播放音频的 JS。

但是加载时间很长,我按照本教程(http://www.dzyngiri.com/show-loading-image-while-the-website-loads/)安装预加载器。

我看到预加载的图像出现了,但是在加载整个页面之前它就消失了。 我试过 $(window).load 和 $(document).ready 之间的变化,在 JS 和音频播放之前都不会显示图像。

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>cal christmas tree canvas 005</title>

<style type="text/css">
#spinner {
position: fixed;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
z-index: 9999;
background: url(images/Bitmap12.jpg) 50% 50% no-repeat #ede9df;
}


</style>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="cal christmas tree canvas 005.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>

<script type="text/javascript">// <![CDATA[
$(window).load(function() { $("#spinner").fadeOut("slow"); })
// ]]></script>

<script>
var canvas, stage, exportRoot;

function init() {
    canvas = document.getElementById("canvas");
    images = images||{};

    var loader = new createjs.LoadQueue(false);
    loader.installPlugin(createjs.Sound);
    loader.addEventListener("fileload", handleFileLoad);
    loader.addEventListener("complete", handleComplete);
    loader.loadManifest(lib.properties.manifest);
}

function handleFileLoad(evt) {
    if (evt.item.type == "image") { images[evt.item.id] = evt.result; }
}

function handleComplete() {
    exportRoot = new lib.calchristmastreecanvas005();

    stage = new createjs.Stage(canvas);
    stage.addChild(exportRoot);
    stage.update();
    stage.enableMouseOver();

    createjs.Ticker.setFPS(lib.properties.fps);
    createjs.Ticker.addEventListener("tick", stage);
}

function playSound(id, loop) {
    createjs.Sound.play(id, createjs.Sound.INTERRUPT_EARLY, 0, 0, loop);
}
</script>
</head>

<body onload="init();" style="background-color:#D4D4D4">
    <div id="spinner"></div>
    <canvas id="canvas" width="960" height="640" style="background-color:#FFFFFF"></canvas>
</body>

</html>

最佳答案

在调用加载器消失函数的同时调用 init() 函数

<body onload="init();" 

$(window).load(function() {} / or window.onload = function() {}

是同一个东西,只是名字不同。

您应该从 onload 标记中取出 init() 并将其放在脚本中的任何位置,远离任何 onload 事件。

关于javascript - 预加载器直到加载所有文件/音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27433860/

相关文章:

javascript - 在 jquery 中更改 img 标签的类名

javascript - 自动生成html用于上传图片

javascript - 通过按钮发送命令播放轨道

javascript - 在 Highcharts 中条形的左侧和右侧添加标签

jquery 小部件 css 覆盖了我自己的 css

javascript - 将不同宽高比的图像均匀地放入多行

javascript - 带有 ReactJS 的工具提示 div

javascript - jvectorMap 从数据库绘制数据

javascript - 使用 BeautifulSoup 抓取 JavaScript (ReactTable)

带参数的表单提交后,Javascript 重定向 url