2010-04-13 2 views
1

У меня есть jquery toggle, который анимирует и отображает DIV. У меня есть прозрачное PNG, фоновое изображение типа тени, и когда оно появляется первым, я вижу черный фон, после чего он исчезает после загрузки изображения ...jquery toggle and transprent PNG

есть ли способ вокруг этого? это ошибка? У меня есть анимация медленно, поэтому, возможно, это имеет какое-то отношение к этому ...

Должен ли я просто показать это()?

ответ

1

Это ошибка в IE.

Текущая версия IE не поддерживает проект opacity CSS, поэтому jQuery вместо этого использует Alpha-фильтр. Однако фильтры заставляют элемент быть полностью непрозрачным, поэтому они не работают правильно с прозрачными PNG.

Для использования прозрачных PNG в полупрозрачных элементах PNG необходимо применять с использованием фильтра AlphaImageLoader (даже в IE8). Например:

if ($.browser.msie) 
    $(something).css({ 
     background: 'none', 
     filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/Folder/Image.png", sizingMethod="scale"),alpha(opacity=100)' 
    }); 

(Этот код работает, я использую его прямо сейчас)

+0

Обратите внимание, что даже тогда, сочетание '' alphaimageloader' и alpha' не совсем такой же, как 'непрозрачности 'будет. Прозрачность на пиксель кажется 'max (image_opacity, filter_opacity)' вместо 'image_opacity * filter_opacity'. (Это не всегда неприятный эффект в анимации.) – bobince

+0

Могу ли я добавить это в мой существующий файл .js? когда я делаю, я получаю сообщение об ошибке «missng»); «... вот что у меня есть: $ (document) .ready (function() { $ ('# business-blue'). hide(); $ ('a # biz-blue-lnk'). Click (function() { $ ('# business-blue'). Animate ({opacity: 'toggle'}, 800); return false;}) }); –

+0

@SLaks похоже, что отсутствует галочка ... потому что я получаю сообщение об ошибке ... –