Мой 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.
Есть большие оговорки, чтобы использовать событие 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 последний пункт, где изображение уже загружено в кеш браузера.
В JavaScript
событие window.onload
запускается после загрузки всех изображений, поэтому, я думаю, вы можете использовать следующее вместо document
$(window).load(function() {
$('#midC').fadeIn('slow');
});
DEMO. Не нужно тестировать IE8
но он должен работать.