3

我想检查图像是否已完全加载。所以我在onRendered带有图像的模板上使用:

模板

<template name="backgroundImage">
    <img class="bg blur" src="{{image}}">
</template>

帮手

Template.backgroundImage.helpers({
    image: function() {
        return '/images/background_1.jpg';
    }
});

事件

Template.backgroundImage.onRendered(function() {
    console.log('image loaded, start fadeOut on overlay');
});

我现在的问题是这是否真的有效?onRendered是在图像加载时触发还是仅在加载 html 时触发?

我的目标是在图像完全加载后使用加载动画淡出叠加层。用户应该在(!)图像加载之后看到页面的内容。

4

1 回答 1

11

onRendered只会在 HTMLimg标签被渲染到 DOM 后触发,但不会等到图像实际完全加载。

您可以使用该load事件来检查:

Template.backgroundImage.events({
  'load img'(event, template) {
    console.log(template.$('img').prop('width'));
  },
});
于 2015-09-29T00:38:46.500 回答