Итак, у меня есть этот html / css / jQuery / js код, который вместе показывает ОЧЕНЬ большое изображение в ширину. Базовый элемент должен быть невидимым, пока изображение не загружено и не установлено. Затем базовый элемент становится видимым благодаря небольшому затуханию.
Однако поведение немного отличается.
Как только изображение загружается, я вижу, как мелкий текст исчезает, и требуется несколько секунд, прежде чем изображение просто всплывает за один раз (не загружается стиль, как сверху вниз, появляется)
Это упрощенный код, который я использую:
<script>
$(function() {
$("#base").hide();
var baseHeight = $(window).height();
var backLayerSRC = $('#img').attr('data-src');
$('#base').height(baseHeight);
var img = new Image();
var imgWidth, imgHeight;
img.onload = function() {
imgHeight = this.height;
imgWidth = this.width;
var factor = 1 * baseHeight / imgHeight;
totalWidth = Math.round(factor * imgWidth);
currentWidth = totalWidth;
$('#base').width(totalWidth);
$('#img').attr('src', backLayerSRC);
$('#img').height(baseHeight);
$('#base').fadeIn(500);
};
img.src = backLayerSRC;
});
</script>
<style>
#base {
position:absolute;
left:0px;
height:100%;
}
#base #img {
position:absolute;
left:0px;
top:0px;
}
</style>
<div id='base'>
some tekst
<img src='' id='img' data-src='path_to_very_large/image.png' />
</div>
Теперь, как могло случиться, что оно просто не исчезает с изображением?
Вот пример с изображением, пожалуйста, проверьте, чтобы было понятно, что я имею в виду
http://jsfiddle.net/uz8mvtap/3