Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.01.2009, 00:08
Новичок на форуме
Отправить личное сообщение для mrsoul Посмотреть профиль Найти все сообщения от mrsoul
 
Регистрация: 02.01.2009
Сообщений: 1

Прозрачное меню в ie6
Доброго времени суток! Есть прозрачное выпадающее меню (http://netsite.su), которое отлично работает под ff и другими браузерами кроме ie6. Для получения прозрачности используется функция:
function fixPNG(element) {
	if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) {
		var src;
		if (element.tagName == 'IMG') {
			if (/\.png$/.test(element.src)) {
				src = element.src;
				element.src = "/images/blank.gif";
			}
		}else {
			src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
			if (src) {
				src = src[1];
				element.runtimeStyle.backgroundImage = "none";
			}
		}
		if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
	}
}

Соответственно в стиле дива пишу filter: expression(fixPNG(this));
Так же использовался jquery (pngFix), но во всех случаях результат один и тот же: в шестом експлорере при наводе на второй или последующие пункты меню пропадает При этом прозрачность есть. Подскажите в чем может быть проблема?
P.S. С новым годом!
Ответить с цитированием
  #2 (permalink)  
Старый 02.01.2009, 19:09
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

В том, что фильтр AlphaImageLoader рисует изображение поверх элемента и его детей.
Так что картинка в IE6 просто перехватывает события, которые должны работать на этих элементах.

Попробуйте "утопить" блок с картинкой с помощью z-index, а блок, принимающий события наоборот поднять.
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2009, 16:47
Рубцов Дмитрий
 
Сообщений: n/a

Спасибо огромное за ответ! Войти под своим ником не получилось
По теме нашел статью http://www.satzansatz.de/cssd/tmp/al...nsparency.html. Сделать чтобы оно не пропадало получилось, но с одной оговоркой: если под меню пусто, то все хорошо, если же под ним картинка, то оно исчезает. Это хорошо видно вот тут: http://netsite.su/profile/basket. Раздел Профиль работает как надо, а раздел Продукт - нет. При наведении курсора ниже первого пункта, все пропадает.
Ответить с цитированием
  #4 (permalink)  
Старый 03.01.2009, 17:30
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Меню слишком прозрачное, при наведении на пункт «Заказ», просвечиваются надписи «Корзина» и «Ваша корзина пуста», которые мешают чтению пунктов меню.
Чтобы «AlphaImageLoader» работал корректно, для блока, к которому он применяется должны быть заданы размеры.
Ответить с цитированием
  #5 (permalink)  
Старый 04.01.2009, 00:14
Рубцов Дмитрий
 
Сообщений: n/a

Не помогло. Что было сделано: фильтр был применен не на элемент ul, а на элемент li, у которого можно задать высоту и ширину. Результат тот же: как только убираем курсор с текста, и под меню есть изображение или текст, оно пропадает. Если же под ним ничего нет, то все хорошо.
Ответить с цитированием
  #6 (permalink)  
Старый 05.01.2009, 14:44
Рубцов Дмитрий
 
Сообщений: n/a

Решение нашлось через этот скрипт http://www.dillerdesign.com/experiment/DD_belatedPNG/. Он не использует фильтр AlphaImageLoader, не создавая путаницы с z-index'ом.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт меню не работает только в Firefox somatic Firefox/Mozilla 2 28.07.2009 03:23
Двухуровневое меню Harouth Общие вопросы Javascript 5 16.12.2008 16:12
IE6 + location.href Snipe Internet Explorer 4 12.11.2008 15:58
помогите с меню Ribt Общие вопросы Javascript 0 20.09.2008 08:11
Помогите сделать простое меню debugger Элементы интерфейса 1 09.09.2008 23:14