Сначала вы можете убедиться, что ваши изображения по умолчанию скрыты (что устраняет необходимость в вызовах jQuery hide
) с помощью некоторого CSS,
.contentwrap img {
display:none;
}
И тогда, в вашем документе. Вы можете попробовать следующее. Я признаю, что здесь будут некоторые избыточности в том, что некоторые изображения могут (за кадром) пытаться исчезнуть дважды, но конечный результат будет выглядеть точно так же. Это компромисс, который я признаю, пытаясь дать простой ответ на этот вопрос.
Ситуация будет такова, что в вашем документе уже могут быть загружены некоторые изображения (особенно те, которые уже были кэшированы), а некоторые еще могут быть ожидающими.
// fade in images already loaded:
$('.contentwrap img').fadeIn(1000);
// and tell pending images to do the same, once they've finished loading:
$('.contentwrap img').load(function () {
$(this).fadeIn(1000);
});
Поскольку jQuery будет «складывать» ваши анимационные эффекты, когда что-то полностью исчезнет, вы можете снова вызвать fadeIn, и ничего не должно (заметно) произойти.
Если бы это было неприемлемо, вы, возможно, могли бы придумать более сложный способ проверки, какие изображения были блеклыми, а какие нет, прежде чем устанавливать для них событие загрузки.
Удачи!