Студия веб дизайна, создание сайтов

Сопровождение и техническая поддержка сайтов

17 лет на рынке IT услуг, с нами надежно!

jQuery и глюк со сглаживанием текста в Internet Explorer

При работе над очередным сайтом, я использовал скрытие блоков с текстом, по средствам jQuery и Internet Explorer как обычно приподнес неприятный сюрприз. Дело в том что при открытии блоков через toggle() исключительно в IE (за нормальными браузерами таких грехов нет), пропадало сглаживание текста, в открывающихся блоках. Соответственно в значительной степени ухудшалась читабельность текста и внешний вид сайта. Длительные поиски решения данной проблемы в интернет, не дали никаких положительных результатов, так как все найденные рецепты для решения данной проблемы, на поверку не работали. Многие просто советовали не пользоваться IE, а перейти на нормальный браузер - но это явно не выход.

Решение пришло как обычно, после серии эксперементов. Как выяснилось при открытии блока через toggle(), злосчастный Internet Explorer добавляет к стилю открываемого элемента, свойство filter и при этом, полностью пропадает сглаживание текста. Собственно говоря IE сам себе подкладывает грабли и с разбегу на них наступает (спасибо разработчикам). Чтобы избавится от этого неприятного глюка, нужно после открытия элемента, очистить стиль от свойства filter.

Делается это следующим образом

$(this).toggle('fast', function(){ 

    if ($.browser.msie) this.style.removeAttribute('filter'); 

});

Вот и все, наш текст снова красивый и сглаженный, как ему и положено быть. Данный метод проверен и гарантированно работает, но самое главное он прост и эффективен. При этом не надо советовать пользователям сайта, менять браузер или отказываться от эффектов jQeury в угоду кроссбраузерности сайта.