なぜこれが機能しないのだろうか...
関数:
$.fn.preload = function() {
this.each(function(){
$('<img/>')[0].src = this;
});
}
コード:
<?php $preimages = glob('images/backgrounds/*{.jpg, .png, .gif, jpeg}', GLOB_BRACE); ?>
$([
<?php
$imgcount = sizeof($preimages);
for($i = 0; $i < $imgcount; $i++) {
if($i == $imgcount-1)
echo $preimages[$i];
else
echo $preimages[$i] . ', ';
}
?>
]).preload($("#load").fadeOut());
foler images/backgrounds フォルダー内のすべての画像をプリロードしようとしていますが、コールバックを $("#load").fadeOut()... にしたいのですが、
ただし、次のようにすると機能します。
img1 = new Image();
img2 = new Image();
img3 = new Image();
img1loaded = false;
img2loaded = false;
img3loaded = false;
img1.onload = function() {
img1loaded = true;
if(img1loaded && img2loaded && img3loaded) {
$("#load").fadeOut();
}
};
img2.onload = function() {
img2loaded = true;
if(img1loaded && img2loaded && img3loaded) {
$("#load").fadeOut();
}
};
img3.onload = function() {
img3loaded = true;
if(img1loaded && img2loaded && img3loaded) {
$("#load").fadeOut();
}
};
img1.src = '<?php echo $baseUrl; ?>images/backgrounds/img1.jpg';
img2.src = '<?php echo $baseUrl; ?>images/backgrounds/img2.jpg';
img3.src = '<?php echo $baseUrl; ?>images/backgrounds/img3.jpg';
上記のことを動的に行うにはどうすればよいですか?
ありがとう!