Нормальное поведение при использовании fadeIn и fadeOut использовать свойство display. Однако это изменяет расположение страницы.
Как я могу сделать fadeIn и fadeOut не изменять макет страницы?
Нормальное поведение при использовании fadeIn и fadeOut использовать свойство display. Однако это изменяет расположение страницы.
Как я могу сделать fadeIn и fadeOut не изменять макет страницы?
Кроме
вместо .fadeIn() вы можете .animate({opacity:1})
и вместо .fadeOut() вы можете .animate({opacity:0})
Вы можете попробовать это для fadeOut:
$("something here").fadeOut("slow", function() {
$(this).show().css({visibility: "hidden"});
});
... и это для fadeIn:
$("something here").hide().css({visibility: "visible"}).fadeIn("slow");
Используйте fadeTo:
Метод
.fadeTo()олицетворяет непрозрачность согласованных элементов. Он похож на метод.fadeIn(), но этот метод отображает элемент и всегда исчезает до 100% непрозрачности.Длительность дается в миллисекундах; более высокие значения указывают на более медленную анимацию, а не на более быстрые. Строки
'fast'и'slow'могут быть представлены для обозначения длительностей200и600миллисекунд соответственно. Если добавлена какая-либо другая строка, используется длительность400миллисекунд по умолчанию. В отличие от других методов эффектов,.fadeTo()требует, чтобыdurationбыл явно указан.Если он включен, обратный вызов запускается после завершения анимации...
Благодаря 10gler моему решению ниже, используя видимость для предотвращения невидимого нажатия кнопки и т.д.
//fadeIn
$("#x")
.css('visibility', 'visible')
.fadeTo('fast', 1);
//fadeOut
$("#x")
.fadeTo('fast', 0, function() {
$(this).css('visibility', 'hidden');
});
Используя комбинацию вышеуказанных ответов, это сработало для меня. Вы можете изменить время анимации по своему вкусу.
В fadeIn:
$('selector').animate({opacity:1, visibility:'visible'}, 200);
В fadeOut:
$('selector').animate({opacity:0, visibility:'hidden'}, 200);
Обязательно установите visibilty:'hidden' и opacity:0 в начале, чтобы избежать внезапного всплытия при первом исчезновении, если экран по умолчанию скрыт, в противном случае это не имеет значения.
$('selector').css({opacity:0, visibility:'hidden'});