jQuery预加载图像函数

时间:2016-04-06 05:04:42

标签: javascript jquery html

首先,请原谅我对这个主题的无知,但是有很多方法可以做到这一点,我试图找到一种方法来做到这一点。

这个小提琴怎么样?我认为它应该在检测到所有图像都已加载时发出警报,但我没有在HTML部分放置任何图像。

fid:https://jsfiddle.net/mbxyoxnx/1/

function preload(files, cb) {
    var len = files.length;
    $(files.map(function(f) {
        return '<img src="'+f+'" />';
    }).join('')).load(function () {
        if(--len===0) {
            cb();
        }
    });
}

preload(["http://mydailymix.eu/wp-content/uploads/2015/06/i_love_video_games_by_cocodie-d5aokgg.jpg", "http://img07.deviantart.net/0528/i/2012/198/3/4/yo_videogames__by_ry_spirit-d57k3ay.jpg", "http://screenrant.com/wp-content/uploads/Nintendo-Video-Game-Characters.jpg","http://site-macgasm.s3.amazonaws.com/wp-content/uploads/2012/04/space-invaders.jpg"], function() {
alert('nice');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!--<img src="http://mydailymix.eu/wp-content/uploads/2015/06/i_love_video_games_by_cocodie-d5aokgg.jpg" alt="">
<img src="http://img07.deviantart.net/0528/i/2012/198/3/4/yo_videogames__by_ry_spirit-d57k3ay.jpg" alt="">
<img src="http://screenrant.com/wp-content/uploads/Nintendo-Video-Game-Characters.jpg" alt="">
<img src="http://site-macgasm.s3.amazonaws.com/wp-content/uploads/2012/04/space-invaders.jpg" alt="">

-->

1 个答案:

答案 0 :(得分:0)

要使其在所有加载后检测到您的图像并触发,您需要执行以下操作: https://jsfiddle.net/mbxyoxnx/3/

var files = $("img").map( function() {
   return $(this).attr("src");
});

preload( files.toArray(), function() {
   alert( "all images loaded" );
});