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

时间:2014-12-11 22:48:22

标签: 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>

1 个答案:

答案 0 :(得分:0)

在调用加载器消除功能的同时调用init()函数

<body onload="init();" 

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

具有不同的名称是相同的。

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