Ако не знаете предварително височината на елемента, е малко по-сложно. Трябва да анимирате непрозрачността директно, за да избледнее, и трябва да скриете съдържанието с CSS видимост, докато се „плъзга“.
Видимостта на CSS „скрита“ позволява на съдържанието да заема мястото в документа, което обикновено би заело, но да бъде скрито от изгледа; CSS показването "няма" не просто скрива елемента, а го премахва от документния поток. Като скрием елемента с помощта на видимост, можем да го плъзгаме надолу, докато достигне пълната му височина, докато съдържанието на елемента остава невидимо.
По същия начин, избледняването на съдържанието при използване на функцията fadeIn на jQuery предполага, че даден елемент първоначално е скрит с дисплей „няма“, така че няма да работи, ако използваме видимост. Вместо това, ние правим елемента първоначално напълно прозрачен (непрозрачност 0.0); след като плъзгащата се анимация завърши, задаваме видимост на „видима“ и след това анимираме непрозрачността от напълно прозрачна до напълно непрозрачна (0,0 до 1,0).
Ако приемем, че елементът първоначално е скрит (CSS дисплей "няма" или функция за скриване на jQuery):
$(element).css("visibility", "hidden").slideDown("slow", function() {
$(this).css("opacity", 0.0).css("visibility", "visible").animate({
"opacity": 1.0
}, "slow");
});
N.B.: Бъдете особено внимателни, когато въвеждате „видимост“ и „видим“, тъй като те лесно се пишат грешно - източникът на много разочароващи грешки.
Не е необходимо да използвате видимост, тъй като можете да постигнете същото, като направите съдържанието първоначално прозрачно, но използването му прави по-ясно какво се случва. Тоест това също работи:
$(element).css("opacity", 0.0).slideDown("slow", function() {
$(this).animate({
"opacity": 1.0
}, "slow");
});
person
Ben
schedule
05.06.2012