Нормальное поведение при использовании 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'});