Проблема с затуханием jQuery в Firefox
Вопрос
Я уже спрашивал здесь, но безуспешно, но не стесняйтесь прочитать это:
http://groups.google.com/group/jquery-en/browse_thread/thread/fdf7a584b30d4bb9
Хм, загляните на мой сайт:
в правом верхнем углу у меня есть поле поиска.Когда вы наводите курсор мыши вон там появляется небольшой текст, который гласит:
Напредна претрага
Теперь по какой-то причине эти буквы меняют цвет на желтый на очень короткий промежуток времени в ff 3.5 и на какой-то странный цвет в safari 4.0.2 для win.В ie8, Opera и Chrome это работает именно так так и должно быть, белые буквы остаются белыми во время анимации.
Есть какие-нибудь предложения?
вот функция, которая выполняет эту работу ;)
$('#header_search').hover(function() {
$('#naprednaPretraga').stop({clearQueue:true}).show().animate({"opacity" : 1},500);
}, function(){
$('#naprednaPretraga').stop({clearQueue:true}).animate({"opacity" : 0},500,function() {
$('#naprednaPretraga').hide();
});
});
Решение
Я понимаю, о чем ты говоришь.На моем компьютере (32-разрядная версия Vista Business, FF3.5) создается впечатление, что желтоватость, присутствующая во время затухания, вызвана сочетанием ClearType, пытающегося воздействовать на текст с альфа-смешением, и того, что вы затушевываете белый текст на голубоватом фоне.Я знаю, что белый + синий ! = желтый, но что бы ни делал FF под капотом при рендеринге прозрачного текста в сочетании с вашей операционной системой и множеством других вещей, он кажется желтым.
Когда я выключаю ClearType на своем компьютере, желтоватый цвет, кажется, исчезает или, по крайней мере, гораздо менее заметен, чем при включенном.
Я боюсь, что вы не сможете контролировать это с помощью кода JavaScript, но я бы, возможно, попробовал то, что предложили другие:сохраните текст видимым, но измените его цвет с синего, соответствующего фону, на белый.
Другие советы
Есть пара исправлений, которые необходимо выполнить - это ошибка только для IE, которая сильно проявляется в IE6, почти отсутствует в IE7 и незначительно в IE8.
на этом сайте было несколько хороших рекомендаций по их удалению:Руководство по jQuery - Blogspot Blogspot
Суть этого в том, что:- Добавьте соответствующий цвет фона к элементу, который получает эффект выцветания - Удалите атрибут filter после того, как элемент был выцветшим.
На самом деле это ошибка Firefox (Cairo) https://bugzilla.mozilla.org/show_bug.cgi?id=363861 сообщалось 3 1/2 года назад...Все еще не исправлено.
Позволяет любому тексту с непрозрачностью, не равной 1 или 0, создавать странные цветные ореолы не только с помощью jQuery или JavaScript, но и с помощью CSS.Хотя с определенными цветами это не так заметно.Кажется хуже при значениях, близких к 1 (.9999)
Я столкнулся с этим в FF 3.5.9, когда выпадающие меню исчезали.Я просто добавил цвет фона к родительскому контейнеру, чтобы исправить это.
Указание цвета фона для фактического текстового элемента исправит это.
Если у вас есть изображение за текстом, то создайте фоновое изображение для текстового элемента, которое соответствует дальнему фону.