У меня проблема с изменением bg-изображения из div. Он работает на Google Chrome и Firefox безупречно, но на IE он немного висит. В IE очень медленно, и иногда он действительно загружает изображение должным образом. мой JQuery код:Изменение изображения bg через JQuery очень медленно на IE
$("a.preview").click(function(e){
var carregar = new Image();
$(carregar).attr('src','imagens/logos/' + this.id +'.jpg');
var img = "imagens/logos/" + this.id +".jpg"; // recebe src da imagem de acordo com a ID
var alvo = this.id; // salva ID do disparador
var logo = document.createElement('img'); // cria objeto imagem
var $logoCarregado = $(logo); // recebe o objeto imagem criado
$logoCarregado.attr('src', 'imagens/logos/'+ alvo +'_logo.png'); //define atributo src da imagem criada
$(".box").fadeOut("fast");
$(".box").hide();
$(".overlay").hide("fast");
$(".logo").hide("fast");
$(".logo").empty();
$(".loader").show("fast"); // mostra carregamento
$(carregar).load(function() { // carrega o conteudo
$(".loader").hide("fast"); // esconde imagem de carregamento
$(".logo").empty(); // apaga conteúdo da ID logo
$("#menu").fadeOut("fast"); //fadeOut menu
$(".overlay").show("fast"); // mostra barra do conteúdo da página do cliente
$(".logo").show("fast"); // mostra logo do cliente
$logoCarregado.appendTo('.logo'); // atribue a logo do cliente á div logo
$("#fundo").empty();
$("#fundo").append("<img src='"+ img +"' class='bg' />"); // troca o fundo
var logoHeight = $logoCarregado.height() + 100; // seta o tamanho da logo + 80 como altura
if (logoHeight <= 120){ //verifica posição do logo do cliente
$(".box" + "#"+alvo) // seleciona o box de texto de acordo com a ID do disparador
.css("display", + "block") // mostra o box
.css("left","0%") // define distância da margem esquerda do box
.fadeIn("fast") // fadeIn texto
.css("top",+ logoHeight+100 + 'px'); // define altura do box
$(".box" + "#"+alvo).animate({
left: '8%'}, 300); // anima entrada do texto
}
else{
$(".box" + "#"+alvo) // seleciona o box de texto de acordo com a ID do disparador
.css("display", + "block") // mostra o box
.css("left","0%") // define distância da margem esquerda do box
.fadeIn("fast") // fadeIn texto
.css("top",+ logoHeight + 'px'); // define altura do box
$(".box" + "#"+alvo).animate({
left: '8%'}, 300); // anima entrada do texto
}
});
return false;
});
Сайт: link
ТКС много для наконечника micadelli ! Похоже, что теперь он работает лучше после изменений, которые вы предложили, но он все еще не работает так гладко, как на хроме, например. Предварительный просмотр можно найти здесь: http://www.zecaconsoni.com.br/ftp/novo/clientes.html все равно, чтобы оптимизировать время загрузки этих изображений? Добавление предварительной загрузки сделает ее более медленной, так как она должна будет загружать каждое изображение bg правильно? Заранее спасибо. – japabr
Кажется, что это очень большие изображения, которые вы загружаете ... Я бы, вероятно, сделал это так, чтобы он начал загружать их после полной загрузки страницы «клиентов» и, возможно, добавить какой-то индикатор выполнения, где-то на странице .. это мои 2 цента – micadelli
Изображение имеет средний вес 400 кб каждая, я думал, что проблема будет в коде, который я написал, но поскольку никто не указал на это, я полагаю, что это правильно, что меня путает, почему Chrome, Safari и Firefox представляют страницу так, как должно быть, но IE этого не делает. Если предварительная загрузка выполняется после отображения страницы, я должен использовать document.load или .ready? Tks снова – japabr