javascript - 图像加载检查并不总是有效

标签 javascript jquery image load

图像加载后,我将应用以下代码:

if ($('.fadein-page-banner') != null) {
$('.fadein-page-banner img').one("load", function() { 
    $('#video-loading-icon').css('opacity', 0);
    $('.fadein-page-banner-wrapper').addClass('fadeout-behind');
    $('.fadein-page-banner').addClass('fade-in-out'); 
});

}

这是 html/php

<div class="fadein-page-banner">
    <span class="block"><?php echo get_post_meta($post->ID, 'fade_in_line_1', true); ?></span>
    <span class="block"><?php echo get_post_meta($post->ID, 'fade_in_line_2', true); ?></span>
    <?php the_post_thumbnail(); ?>
</div>

缩略图是我正在等待加载的图像。请注意,即使我使用的是一个类,我也只针对那一张图像。基本上,页面加载后,巨大的图像就会淡入淡出。我试图让该图像等到加载后才开始淡入淡出过程。

但是,它并不总是有效,尤其是当我单击页面链接时。我尝试清除缓存。有什么想法我可能做错了吗?我尝试删除 if 条件,并使用“on”而不是“one”。经过多次刷新后它最终可以工作(我也尝试过等待)。有没有办法我可以设置 300 毫秒的超时来继续检查负载,当加载时,执行代码,否则再次执行该函数?

最佳答案

if ($('.fadein-page-banner') != null) {
    $('.fadein-page-banner img').one("load", function() {
        if (this.complete) {
            $('#video-loading-icon').css('opacity', 0);
            $('.fadein-page-banner-wrapper').addClass('fadeout-behind');
            $('.fadein-page-banner').addClass('fade-in-out');
        }
    });
}

关于javascript - 图像加载检查并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39149339/

相关文章:

javascript - 使用 toggleClass 在图像高度 250px - 450px 之间切换?

jQuery unwrap 移除错误的容器

java - 在java中将图像作为文本发送

image - 在我自己的图像上使用 Google Maps Javascript API 捏合缩放

javascript - JavaScript 函数中的 if 语句不起作用

javascript - Reactjs : setState doesn't assign value to state

javascript - 通过移动我页面上的其他元素使图像看起来更大

javascript - 如何使用 javascript 变量在文本字段中创建变量文本

javascript - 此 JavaScript 文件在一个页面上运行,但在其他页面上不运行,这是为什么?

javascript - Jquery - 通过滚动位置进行动画处理,以在窗口调整大小时进行相同的工作