Javascript 为gallery逐个预加载图像?这有什么问题?
我想制作一个JavaScript(jQuery),HTML库,它有大约60张图片。我要他们一个接一个地装。它们被命名为1.jpg,2.jpg,3.jpg。。。等等 所以我开始做一个Javascript 为gallery逐个预加载图像?这有什么问题?,javascript,jquery,html,Javascript,Jquery,Html,我想制作一个JavaScript(jQuery),HTML库,它有大约60张图片。我要他们一个接一个地装。它们被命名为1.jpg,2.jpg,3.jpg。。。等等 所以我开始做一个 这包含实际加载的图像,我给它一个带有脚本的src,然后等待它加载,然后给它的真正目的地相同的src: 完成后,我开始加载第二张图片。我该怎么做 我试着用递归实现它,一个调用自身的函数,但它不会等待图像加载。我用了这个: $("#loader").attr("src",pic); $("#loader").re
这包含实际加载的图像,我给它一个带有脚本的src,然后等待它加载,然后给它的真正目的地相同的src:
完成后,我开始加载第二张图片。我该怎么做
我试着用递归实现它,一个调用自身的函数,但它不会等待图像加载。我用了这个:
$("#loader").attr("src",pic);
$("#loader").ready(function(){$("#a"+active).attr("src",pic);
您可以使用从JS代码加载图像
var img = new Image();
img.onload = function() {
// do stuff after image is loaded
};
img.src = pic_url;
更新
JS函数存根和用法示例
<script>
function load_image(img_url)
{
// show overlay, spinner, whatever
var img = new Image();
img.onload = function() {
// add <img> tag
// hide overlay, spinner, whatever
};
img.src = img_url;
}
</script>
<a href="jaavscript:load_image('/images/test.jpg');">load image</a>
函数加载\u图像(img\u url)
{
//显示覆盖、微调器等
var img=新图像();
img.onload=函数(){
//加
您可以使用
var img = new Image();
img.onload = function() {
// do stuff after image is loaded
};
img.src = pic_url;
更新
JS函数存根和用法示例
<script>
function load_image(img_url)
{
// show overlay, spinner, whatever
var img = new Image();
img.onload = function() {
// add <img> tag
// hide overlay, spinner, whatever
};
img.src = img_url;
}
</script>
<a href="jaavscript:load_image('/images/test.jpg');">load image</a>
函数加载\u图像(img\u url)
{
//显示覆盖、微调器等
var img=新图像();
img.onload=函数(){
//加
您可以使用图片的onload事件。但是,如果您的图像被缓存,它将无法工作,因此您可以使用它:
$('img[id|="a"]').each(function() {
if(this.complete) $(this).trigger('load');
});
var doOnLoad=function(){
var id=parseInt($(this).attr('id').substr(1));
$(this).removeClass("active_pic");
id++;
$('#a'+id).attr("src",pic[id]).one('load', doOnLoad).addClass("active_pic");
};
$(".active_pic").one('load', doOnLoad);
pic必须是一个数组,id作为键,src作为值。您可以使用图片的onload事件。但是,如果您的图像被缓存,它将无法工作,因此您可以使用它:
$('img[id|="a"]').each(function() {
if(this.complete) $(this).trigger('load');
});
var doOnLoad=function(){
var id=parseInt($(this).attr('id').substr(1));
$(this).removeClass("active_pic");
id++;
$('#a'+id).attr("src",pic[id]).one('load', doOnLoad).addClass("active_pic");
};
$(".active_pic").one('load', doOnLoad);
pic必须是id为键、src为值的数组。尝试使用跨浏览器解决方案等待加载图像。加载pic需要多长时间?使用
setInterval(函数(){/*在此处加载图片*/},3000)
;尝试使用跨浏览器解决方案来等待加载图片。加载图片需要多长时间?使用setInterval(function(){/*load picture here*/},3000)
;但它会等待图片加载,还是跳过img.onload=function(){因为它还不是真的吗?onload
只有在图像加载后才会触发。所以把加载其他图像放在callabck中。img.onload可以在onclick事件中调用的其他函数中?当然可以。但是真正触发图像加载的是img.src
onload的赋值应该是e在它之前定义。如果img.src在img.onload之前更好,对吗?这样它可以加载,然后检查是否加载。但它会等待图片加载,还是跳过img.onload=function(){因为它还不是真的吗?onload
只有在图像加载后才会触发。所以把加载其他图像放在callabck中。img.onload可以在onclick事件中调用的其他函数中?当然可以。但是真正触发图像加载的是img.src
onload的赋值应该是e在它之前定义。如果img.src在img.onload之前更好,对吗?这样它可以加载,然后检查是否加载。