Ответ 1
Используйте jQuery fadeTo(), а затем обратный вызов задает видимость. Пример:
$('selector').fadeTo(500, 0, function(){
$('selector').css("visibility", "hidden");
}); // duration, opacity, callback
Метод .fadeOut() анимирует непрозрачность сопоставляемых элементов. Когда непрозрачность достигает 0, свойство стиля отображения становится равным none, поэтому элемент больше не влияет на макет страницы, как и для fadeIn().
Мой вопрос заключается в том, могут ли они использовать свойство видимости, чтобы они занимали место в макете страницы, а не просто видны?
Используйте jQuery fadeTo(), а затем обратный вызов задает видимость. Пример:
$('selector').fadeTo(500, 0, function(){
$('selector').css("visibility", "hidden");
}); // duration, opacity, callback
Просто запишите свойство в обратном вызове
$('Element').on("click", function() {
$(this).fadeOut(500, function() {
$(this).css({"display": "block","visibility": "hidden"}); // <-- Style Overwrite
});
})
Анимация с непрозрачностью css, похоже, достигает аналогичного эффекта.
$('#element').animate({opacity: 0}, 1000);
Запустите то же самое с непрозрачностью: 1, чтобы вернуться обратно.