Javascript load();不总是用图像发射
我有一个脚本,它在加载时会在图像中淡入淡出,以防止加载丑陋的动画,它使用Javascript load();不总是用图像发射,javascript,jquery,jquery-animate,jquery-events,Javascript,Jquery,Jquery Animate,Jquery Events,我有一个脚本,它在加载时会在图像中淡入淡出,以防止加载丑陋的动画,它使用$(elem.load()函数 我的问题是,有时页面上会出现一些尚未淡入的图像。这可能是因为加载事件尚未触发。我已经检查了控制台的错误,但是什么也找不到。。。这种情况并不总是发生,但偶尔也会发生 剧本: // Function to be applied to any element jQuery.fn.preFade = function( speed, callback ) { this.load(functio
$(elem.load()代码>函数
我的问题是,有时页面上会出现一些尚未淡入的图像。这可能是因为加载事件尚未触发。我已经检查了控制台的错误,但是什么也找不到。。。这种情况并不总是发生,但偶尔也会发生
剧本:
// Function to be applied to any element
jQuery.fn.preFade = function( speed, callback ) {
this.load(function(){
$(this).fadeIn(speed, callback);
});
};
// The .prefade class has display: none; applied to it in my CSS
$(document).ready(function(){
$('.prefade').preFade(1000);
});
最让我感到困惑的是,尽管没有触发加载事件,但图像实际上已加载。我之所以知道这一点,是因为当我检查元素并将其更改为display:block代码>从显示:无代码>显示图像
我隐约知道,在事件调用的顺序方面,我可能遗漏了一些东西…我在注释中链接到了一个解决方案,这就是它如何适合我的代码
this.one('load', function(){
$(this).fadeIn(speed, callback);
}).each(function(){
if (this.complete) { $(this).load(); }
});
将简单的$.load()
函数(使用$.on('load')
)更改为$。one('load')
函数将事件限制为仅触发一次如果(this.complete)
则在事件绑定到元素之前检查它是否已加载,如果已加载,则会触发加载事件
我在评论中链接到了一个解决方案,这就是它如何适合我的代码
this.one('load', function(){
$(this).fadeIn(speed, callback);
}).each(function(){
if (this.complete) { $(this).load(); }
});
将简单的$.load()
函数(使用$.on('load')
)更改为$。one('load')
函数将事件限制为仅触发一次如果(this.complete)
则在事件绑定到元素之前检查它是否已加载,如果已加载,则会触发加载事件
使用$(窗口)。加载事件。这将仅在加载所有图像时触发
$(window).load(function(){
$('.prefade').preFade(1000);
});
使用$(窗口)。加载事件。这将仅在加载所有图像时触发
$(window).load(function(){
$('.prefade').preFade(1000);
});
我想这可能是我的解决方案,我会检查它是否工作出色,工作完美。谢谢,我想这可能是我的解决方案,我会检查它是否工作出色,工作完美。感谢您在文档加载后加载它们。感谢您在文档加载后加载它们。