Поскольку мне нужно снова fadeIn() вернуть другой элемент того же размера, есть ли способ fadeOut(), чтобы пространство сохранялось, так что остальные элементы не повторяются -flow в течение секунды, а затем fadeIn() вернет другой элемент с тем же размером?В jQuery, можете ли вы fadeOut() не потерять недвижимость элемента? (invisible vs display: none)
4
A
ответ
9
Два метода приходят на ум:
- Wrap элемент в DIV, который занимает правильное количество места.
- Используйте способ .animate, чтобы изменить непрозрачность элемента с 100% до 0%, затем, когда анимация завершена, замените новый элемент и еще раз используйте анимацию, чтобы изменить непрозрачность от 0% до 100%.
2
мое предложение вам обернуть его DIV ... и поставить ту же размерность, что на DIV ...
2
Сохраните элемент, который вы хотите затухать внутри фиксированного <div style="display:block;width:300px;height:200px;">
, а затем, если вы спрячете элемент внутри него, это не повлияет на макет вообще.
0
Я сделал свое собственное исправление. Перед тем, как запустить FADEOUT, я запустить эту функцию:
/**
* Keep the window height, to avoid user being thrown up (i.e. on fade out, remove, hide, etc)
*/
function keepHeight() {
$('body').css('min-height', $(document).height());
}
Так, например:
/**
* Keep window height
*/
keepHeight();
/**
* Fade out
*/
$('#someDiv').fadeOut();
3. использование 'fadeTo()' :) –
Йонут дать правильный ответ +1. – jmcollin92