`
taro
  • 浏览: 136637 次
  • 性别: Icon_minigender_1
  • 来自: 东京
社区版块
存档分类
最新评论

Javascript实现图片预加载【回调函数,多张图片】

阅读更多

        使用JS实现一组图片动画效果或者使用HTML5 Canvas渲染一系列图片等案例中,需要图片全部加载完成方可运行动画效果。此时程序中就会涉及多张图片预加载代码。当接二连三的案例中都涉及图片预加载时,就需要考虑把这个功能封装为一个通用方法。

 

(1)下面为JS实现图片预加载方法loadImages():

 

//实现一系列图片的预加载
//参数sources:图片信息关联数组
//参数callback:回调函数——图片预加载完成后立即执行此函数。
function loadImages(sources, callback){
    var count = 0,
        images ={},
        imgNum = 0;
    for(src in sources){
        imgNum++;
    }
    for(src in sources){
        images[src] = new Image();
        images[src].onload = function(){
            if(++count >= imgNum){
                callback(images);
            }
        }
        images[src].src = sources[src];
    }
}

 

(2)在JS中调用预加载函数:

 

//存储图片链接信息的关联数组
var sources = {
    ietoHell : "img/IEtoHell.jpg",
    fuckIE : "img/fuckIE.jpg"
 };

//调用图片预加载函数,实现回调函数
 loadImages(sources, function(images){
//TO-DO something
    ctx.drawImage(images.ietoHell, 20,20,100,100);
    ctx.drawImage(images.fuckIE, 140,20,100,100);
 });

 

注意事项:

 

(1)先绑定image.onload事件,后加载图片

 

images[src] = new Image();
images[src].onload = function(){
    if(++count >= imgNum){
        callback(images);
    }
}
images[src].src = sources[src];

        原因:如果图片从缓存中加载,速度非常快以至于没来得及绑定事件就加载完毕,自然不会触发绑定事件。

 

(2)for...in循环 与 for循环的区别

        for循环用于迭代数组(array)

        for...in循环用于迭代对象(object, {})或者关联数组(hash array)

分享到:
评论
1 楼 bingb511 2016-09-28  
用这个方法加载的图片要模糊啊?

相关推荐

    jQuery实现图片预加载

    4. **设置真实`src`**:在`load`事件的回调函数中,将`<img>`标签的`src`属性设置为实际图片URL。此时,浏览器会开始加载真实的图片内容。 5. **处理错误**:同时,也需要监听`error`事件,以防图片加载失败。可以...

    图片预加载js

    为了确保图片已经成功加载,可以监听`onload`事件,当图片加载完成后执行回调函数: ```javascript function preloadImage(url, callback) { var img = new Image(); img.onload = function() { if (callback) {...

    Jquery实例--图片预加载

    // 可以添加回调函数来监听图片加载完成 img.onload = function() { console.log('Image ' + this.src + ' preloaded.'); }; } } ``` 4. **调用预加载函数**:在合适的时机调用预加载函数,例如文档加载完成后...

    javascript图片预加载完整实例

    然后提供了一个简单的JavaScript函数`loadImage`,它创建一个Image对象,并在图片加载完成后通过回调函数来通知开发者。这个回调函数可以用来执行一系列动作,如更新页面上的图片元素`src`属性,或者在图片加载完成...

    wxapppreload微信小程序图片预加载

    预加载过程中,可以设置回调函数来监听加载进度,以便于提供加载状态反馈或者进行其他处理。 预加载策略也是值得考虑的一部分。例如,可以采取“按需预加载”,只对即将出现在用户视野内的图片进行预加载,或者...

    使用jQuery实现图片预加载和自动等比例缩放插件

    2. **监听`load`事件**:当图片加载完成后,`jQuery`会触发`load`事件,我们可以在该事件的回调函数中进行后续操作,例如显示图片或执行其他动画效果: ```javascript img.load(function() { // 图片预加载完成后...

    图片预加载、占位背景图jquery plugin

    接下来,可以创建一个新的预加载实例,传入图片URL数组,并注册必要的回调函数。例如: ```javascript $(document).ready(function() { var preloader = new Preloader(['image1.jpg', 'image2.jpg', 'image3.jpg'...

    jquery图片预加载

    该插件提供了丰富的选项和回调函数,可以定制化预加载的过程,如渐进加载(逐渐加载)。 **五、使用jquery.LoadImage实现逐渐加载** `jquery.LoadImage`插件支持逐渐加载,这意味着图片会根据需要分段加载,而不是...

    JS加载load图片jquery.LoadImage图片预加载(逐渐加载)demo

    在实际应用中,开发者可以根据需要调整`LoadImage`插件的参数,以适应不同场景的需求,例如限制同时加载的图片数量,控制加载优先级,或者添加自定义的回调函数来处理加载完成后的操作。 总结来说,"JS加载load图片...

    jquery.LoadImage图片预加载.zip

    这可以通过设置`onLoadStart`和`onLoadEnd`回调函数来实现。 总的来说,jQuery LoadImage插件凭借其易用性和高效性,成为了前端开发中处理图片预加载问题的理想选择。无论你是新手还是经验丰富的开发者,都能快速...

    利用CSS、JavaScript及Ajax实现图片预加载的方法

    此外,这种方法还允许在图片加载完成时触发回调函数,以便进行进一步处理。 最后,我们来看Ajax预加载。Ajax(异步JavaScript和XML)技术通常用于后台数据交互,但在预加载图片方面也有应用。通过发送一个...

    jquery处理图片预加载

    // 可选:添加加载完成后的回调函数 img.onload = function() { // 在这里处理图片加载完成的逻辑,如替换占位符 // ... }; } }); ``` 在上述代码中,我们创建了一个`Image`对象,并设置了它的`src`属性为要预...

    jQuery图片预加载插件源码.zip

    3. **加载事件监听**:通过监听`onload`事件,当图片加载完成后,执行回调函数,记录已加载的图片,并可能移除预加载的`<img>`元素以释放内存。 4. **错误处理**:对于加载失败的图片,插件会提供错误处理机制,...

    PreLoad一个图像预加载插件以实现有序加载和无序加载

    3. **调用预加载方法**:启动预加载过程,可以指定预加载的回调函数来处理加载完成后的逻辑。 4. **处理加载后的图片**:在图片加载完成后,可以通过回调函数更新页面,将图片插入到 DOM 中,或者应用到 CSS 样式中...

    javascript 也来玩玩图片预加载

    `DownImg`方法负责加载图片,并在加载完成后执行回调函数。 JavaScript图片预加载技术优点 JavaScript图片预加载技术有以下几个优点: * 提高用户体验:通过预加载图片,可以减少用户等待图片加载的时间,从而...

    javascript图片预加载实例分析

    标题“javascript图片预加载实例分析”涉及的知识点涵盖了在JavaScript中实现图片预加载的方法和技巧。图片预加载是一种常见的前端技术,用于提前加载图片资源,以便在需要时可以立即显示,从而提升用户体验。 描述...

    JS实现图片预加载无需等待

    而现代Web 2.0应用倾向于使用JavaScript预加载图片,利用浏览器缓存机制提前下载图片,并在需要时直接显示,避免等待时间。 在实现图片预加载的JavaScript代码中,通常会使用Image对象,这是一个内置的JavaScript...

    图片预加载

    // 可选:添加回调函数来处理预加载完成或失败的事件 img.onload = function() { console.log('图片' + url + '已成功预加载'); }; img.onerror = function() { console.error('图片' + url + '预加载失败'); ...

    解析javascript图片懒加载与预加载的分析总结

    2. JavaScript预加载:通过JavaScript动态创建图片元素,并设置其src属性值。图片加载完成后再将图片元素添加到页面中。 3. HTML预加载:通过在HTML中添加img标签,但不设置其src属性,然后通过JavaScript设置src来...

    jquery实现图片预加载

    通过调用插件提供的`imgpreload`方法,传入图片地址数组和回调函数,以实现图片预加载和加载进度反馈。 ```javascript var imgNum = 0; var images = []; $(function(){ preloadImg(); }); function preloadImg(){...

Global site tag (gtag.js) - Google Analytics