.fadeIn () не запускается в версии IE менее 9

0

Мой CSS:

#midC {
    display: none;
    background: transparent;
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; /* IE8 */   
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);   /* IE6 & 7 */ 
}

Мой JQuery:

$(document).ready(function() {
    $('#midC').load(function() {  
        $('#midC').fadeIn('slow');  
    });
});

HTML:

<img src="theImages/topLogo_temp.png" id=midC />

Вышеупомянутый код работает в CSS и IE> 9. Есть ли способ заставить его работать меньше, чем версия 9? Изображение когда-нибудь появляется, а когда-то не на IE8.

Теги:

2 ответа

1
Лучший ответ

Есть большие оговорки, чтобы использовать событие load с изображениями. Из документов jQuery:

Предостережения о событии загрузки при использовании с изображениями

Общей проблемой, которую разработчики пытаются решить с помощью ярлыка.load(), является выполнение функции, когда изображение (или коллекция изображений) полностью загружено. Есть несколько известных оговорок с этим, что следует отметить. Эти:

It doesn't work consistently nor reliably cross-browser
It doesn't fire correctly in WebKit if the image src is set to the same src as before
It doesn't correctly bubble up the DOM tree
Can cease to fire for images that already live in the browser cache

Наиболее распространенным я видел с IE 8 последний пункт, где изображение уже загружено в кеш браузера.

  • 0
    Как только функция LOAD была удалена, изображение загрузилось нормально. Благодарю.
1

В JavaScript событие window.onload запускается после загрузки всех изображений, поэтому, я думаю, вы можете использовать следующее вместо document

$(window).load(function() {
    $('#midC').fadeIn('slow');  
});

DEMO. Не нужно тестировать IE8 но он должен работать.

  • 0
    Удаление события LOAD также помогло ... Спасибо за ответ. UPVOTED.
  • 1
    @ SiKni8, рад знать :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню