Простое fadeIn и видимость в jQuery
Я пытаюсь изменить свойство css visibility
div на visible
с помощью перехода jQuery .fadeIn()
.
Вот мой код:
$('a').click(function() {
$('#test').fadeIn('slow', function() {
$(this).css('visibility','visible');
});
});
и скрипка: http://jsfiddle.net/np6r7/
Ответы
Ответ 1
Вы не можете анимировать visibility
. fadein
отключается display:none;
, поэтому должно быть #test
начальное состояние через CSS. Если вам нужно сохранить макет, вы можете попробовать выполнить тест на упаковку в div, который определяет высоту и/или ширину, которые вам нужны.
Ответ 2
На самом деле мне понравился davidaam ответ. Я бы сделал небольшую модификацию:
$('#test').css('visibility','visible').hide().fadeIn("slow");
Ответ 3
Вы также можете использовать непрозрачность CSS в сочетании с JQuery fadeIn для достижения того же.
Вместо использования видимости в вашем CSS используйте opacity: 0;
Затем используйте jQuery FadeTo
, чтобы увеличить непрозрачность до 100%:
$('#test').fadeTo('slow', 1);
Это сохранит позиционирование, как видимость, однако важно отметить, что opacity: 0
отвечает на такие события, как щелчок и нажатие, а также участие в таборде. Кроме того, я также читал, что ответственное использование visibility: hidden
, а не display: none
лучше для SEO, но я не уверен, как это относится к opacity: 0
.
JSFIDDLE: http://jsfiddle.net/np6r7/15/