Если вы не знаете высоту элемента заранее, это немного сложнее. Вы должны анимировать непрозрачность напрямую, чтобы исчезнуть, и вы должны скрыть содержимое с видимостью CSS, пока оно «скользит».
Видимость CSS «скрытая» позволяет содержимому занимать то место в документе, которое оно обычно занимает, но быть скрытым от просмотра; Отображение CSS «нет» не просто скрывает элемент, но и удаляет его из потока документов. Скрыв элемент с помощью видимости, мы можем сдвинуть его вниз до полной высоты, в то время как содержимое элемента останется невидимым.
Точно так же исчезновение содержимого при использовании функции jQuery fadeIn предполагает, что элемент изначально скрыт с отображением «none», поэтому это не будет работать, если мы используем видимость. Вместо этого мы делаем элемент изначально полностью прозрачным (непрозрачность 0,0); как только скользящая анимация завершена, мы устанавливаем видимость на «видимую», а затем анимируем непрозрачность от полностью прозрачной до полностью непрозрачной (от 0,0 до 1,0).
Предполагая, что элемент изначально скрыт (отображение CSS "none" или функция скрытия jQuery):
$(element).css("visibility", "hidden").slideDown("slow", function() {
$(this).css("opacity", 0.0).css("visibility", "visible").animate({
"opacity": 1.0
}, "slow");
});
N.B.: Будьте особенно осторожны при вводе слов «visibility» и «visible», так как в них легко ошибиться, что является источником множества неприятных ошибок.
Вам НЕ ОБЯЗАТЕЛЬНО использовать видимость, так как вы можете добиться того же, сделав контент изначально прозрачным, но используя его, вы сделаете более явным то, что происходит. То есть это тоже работает:
$(element).css("opacity", 0.0).slideDown("slow", function() {
$(this).animate({
"opacity": 1.0
}, "slow");
});
person
Ben
schedule
05.06.2012