Когда я использую jQuery для установки непрозрачности элемента в IE6 или IE7, кажется, что возникает «переполнение: скрыто». Зачем? - PullRequest
3 голосов
/ 23 апреля 2011

Рассмотрим этот HTML:

<!DOCTYPE html> 
<html> 
    <head> 
        <title></title> 
        <style type="text/css"> 
        div {
            position: relative;
            width: 200px;
            height: 200px;
            background: #ff0;
        }
        span { 
            position: absolute;
            width: 200px;
            height: 200px;
            background: #f00;
            top: 100px;
            left: 100px;
        }
        </style>
    </head> 
    <body> 
        <div><span></span></div> 
    </body> 
</html> 

Вывод:

Теперь давайте добавим некоторый код jQuery, который устанавливает непрозрачность содержащего элемента div на любой уровень:

$('div').css({ opacity: '1' });

Вывод теперь такой:

Как этого избежать? Вот тестовая страница .

РЕДАКТИРОВАТЬ: Это также происходит в IE6.

1 Ответ

0 голосов
/ 24 апреля 2011

Я обнаружил, что если вы очистите свойство filter, проблема исчезнет.

$('div').css('opacity', '1').css('filter', '');

или

$('div').animate({ opacity: '1' }, function() { 
    $(this).css('filter', '')
});
...