2010-10-20 1 views
2

У меня возникли проблемы с выцветанием на больших изображениях, но только в Chrome.Увядание больших изображений в Chrome

Вот абсолютно базовая настройка:

$(document).ready(function(){ 
    var img = new Image(); 
    $(img) 
     .hide() 
     .load(function(){ 
     $(this).fadeIn(3000) 
     }) 
     .attr("src", "files/originals/01.jpg") 
    $("body").append(img) 
}); 

Насколько я знаю, что это обычный способ создания изображения на лету, загрузить его, и FadeIn, когда он загрузится. Теперь это прекрасно работает в FireFox, Safari и даже в IE, но не в Chrome, когда я использую большие изображения (разрешение больше 1900x1200). И перед тем, как кто-то плачет о размере, я должен добавить, что это требование для проекта. Что происходит во всех браузерах, но Chrome заключается в том, что есть задержка, пока изображение загружается (ожидается), и как только оно завершается, оно исчезает. В Chrome я получаю регулярную задержку при загрузке изображения, а затем еще одну задержку для длительность fadeIn (в моем примере 3000 мс), после чего изображение просто «появляется», как если бы я использовал show(). Меньшие изображения прекрасно работают во всех браузерах.

Что дает? Что мне не хватает?

+0

Я пробовал свой код с FF, IE и Chrome, и все отлично работает для меня. Посмотрите [здесь] (http://jsfiddle.net/xaUTj/) и попробуйте. Я собрал вашу функцию, решение для бетамакса и еще одну небольшую вариацию от меня. Загрузка изображения может занять некоторое время. Это 2 МБ и загружается из изображения. – Andreas

+0

То же самое для меня. Может быть, проблема с компьютером Александра? – betamax

+0

Хм, это может быть что-то с компьютером, потому что, когда я попробовал свой собственный код снова утром, это сработало! Очистил кеш и все, и он не смог воссоздать проблему. Спасибо вам за помощь! –

ответ

2

Возможно, попробуйте переместить вставку изображения в DOM после его загрузки? Например:

$(document).ready(function(){ 
    var img = new Image(); 
    $(img) 
     .hide() 
     .load(function(){ 
     $("body").append(this); 
     $(this).fadeIn(3000); 
     }) 
     .attr("src", "files/originals/01.jpg") 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^