javascript - jQuery 预加载多个图像然后调用事件

标签 javascript jquery

我想在加载所有图像后触发一个事件。 而且,我想将每个图像标签附加到特定的 div#ID,例如:

image01.jpg -> <div id="load01"></div>

image02.jpg -> <div id="load02"></div>

image03.jpg -> <div id="load03"></div>
...

我被困在中间...

HTML

<div id="blinker0">Smooth Blink</div>
<div class="profile" id="blinker1"></div>
<div class="profile" id="blinker2"></div>
<div class="profile" id="blinker3"></div>
<div class="profile" id="blinker4"></div>
<div class="profile" id="blinker5"></div>

JS:

function smBlink(){
  for(i=0;i<3;i++) {
    $("#blinker0,#blinker1, #blinker2, #blinker3, #blinker4, #blinker5")
   .fadeTo('normal', 0.3)
   .fadeTo('normal', 1.0);
  }
}

$('<img />')
.attr('src', 'http://placekitten.com/160/160')
.load(function(){
$('#blinker1').append( $(this) );
smBlink();
});

现场样本:http://jsfiddle.net/nori2tae/E4erT/

我引用了这个网站:http://jquery-howto.blogspot.jp/2009/02/preload-images-with-jquery.html

最佳答案

您可以使用 imagesLoaded插件和一个不可见的保持元素来预加载图像:http://jsfiddle.net/imsky/E4erT/15/

$.each([1, 2, 3, 4, 5], function(i, j) {
    $("#invisible").append(
    $("<img />").attr("src", 
    "http://placekitten.com/" + j * (20 + Math.floor(Math.random() * 30)) + 
    "/" + j * 24))
});
$(function() {
    $("#invisible").imagesLoaded(function(img) {
        img.each(function(index, el) {
            $("#blinker" + (index + 1)).append(el);
        });
    });
});

关于javascript - jQuery 预加载多个图像然后调用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11065964/

相关文章:

javascript - 在 div 的 slideUp() 事件上切换类

javascript - 如何在数据数组的每次迭代中创建内容为 "i+1"的新 HTML 元素

javascript - 隐藏 id 中具有特定编号的所有元素

javascript - Angular JS 中的动态参数传递

javascript - 每次将类添加到元素时,使用 waitForKeyElements 显示一条消息

javascript - 选中时如何连接 radioButton ( &lt;input type radio ../> ) 调用函数?

javascript - 将复选框加载/删除到数组时出现问题

javascript - 如何使用 SonarQube 分析源和测试位于同一目录中的项目

javascript - 使用按钮关闭 colorbox 弹出窗口并触发确认框?

javascript - 如何清除.map回调函数中放置的间隔