JQuery 1.4.2 показывает сплошной цвет в IE вместо соблюдения непрозрачности - PullRequest
1 голос
/ 29 марта 2010

Пожалуйста, посмотрите на эту демонстрационную страницу, которую я недавно приготовил:

http://www.s3maphor3.org/demo/hotbox/

Это пользовательский лайтбокс, который срабатывает при удерживании клавиши пробела. Как это работает, довольно просто. На странице есть два скрытых элемента: один для содержимого лайтбокса, а другой содержит темный слой (непрозрачность 70%). Z-индекс затемненного слоя на один меньше, чем у лайтбокса. Удерживая клавишу пробела, простой скрипт jQuery выполняет .show () для обоих div.

Это демо работает отлично, но оно сломалось, когда я использовал его в другом проекте: IE7 и 8 не показывали 70% темный слой, вместо этого он показывает сплошной черный фон. Я провожу много часов, пытаясь проверить разницу между оригинальной демоверсией, которая работает, и версией, которую я использую в другом проекте. В конце концов я прибил это: разница в версии jQuery.

В оригинальной демоверсии используется jQuery 1.3.1, а в моем новом проекте я использую jQuery 1.4.2. Что-то должно было измениться в новой библиотеке jQuery, но мне трудно разобраться, что и как обойти. Я могу остаться на 1.3.1, но в конце концов мне придется как-то это исправить.

1 Ответ

3 голосов
/ 29 марта 2010

Отчасти так глупо отвечать на мой вопрос, но я нашел обходной путь. Установка непрозрачности в javascript перед ее отображением (хотя CSS уже имеет это правило), похоже, помогает:

$('#darken').css('filter', 'alpha(opacity=70)');
$('#darken').show(0);

Это дает небольшое мерцание на экране, поэтому я открыт для лучших решений.

...