Чи існує альтернатива fadeOut (), яка не використовує display: none для стилю? Я хотів би просто використовувати видимість, приховану, щоб уникнути будь-яких змін у макеті сторінки?
Чи існує альтернатива fadeOut (), яка не використовує display: none для стилю? Я хотів би просто використовувати видимість, приховану, щоб уникнути будь-яких змін у макеті сторінки?
Відповіді:
Ви можете використовувати .animate()на opacityбезпосередньо:
$(".selector").animate({ opacity: 0 })
Таким чином, елемент все ще займає простір, як ви хочете, він просто має 0непрозорість, тому він фактично такий же, як і visibility: hiddenколи закінчується.
Так, є альтернатива. Це називається.fadeTo() , де ви встановлюєте цільову непрозорість, яка у вашому випадку буде 0.
$('element').fadeTo( 1000, 0 ); // fade to "0" with a 1000ms duration
displayЗрештою це не змінить властивість.
Спеціальна анімація - це альтернатива http://api.jquery.com/animate/
.animate({opacity: 0.0}, 5000, 'linear', callback);
Одним із способів цього є захоплення режиму відображення, потім .fadeOut, і в повному обсязі виконайте бажаний спосіб приховування та встановіть дисплей назад на те, що він був:
var $element = $('#selector');
var display = $element.css('display');
$element.fadeOut(500, function() {
$element.css('visibility', 'hidden');
$element.css('display', display);
}
Я хочу fadeOut , потім змінити вміст, а потім fadeIn знову:
$("#layer").animate({opacity: 0}, 1000, 'linear', function(){
//Do here any changes to the content (text, colors, etc.)
$("#layer").css('background-color','red'); //For example
$("#layer").animate({opacity: 1}); //FadeIn again
});
Зауважте, що
fadeTo(500, 0) // fade out over half a second
fadeTo(0, 0) // instantly hide
(як не дивно) не сумісний з
fadeIn()
(коли ви хочете показати це знову). Отже, якщо ви використовуєте
fadeTo(500, 0)
для того, щоб приховати щось без css, display: noneви повинні використовувати
fadeTo(500, 1)
повернути його назад, або він все ще opacity: 0залишиться в css і залишиться невидимим.
visibility: hidden;функцію зворотного виклику завершення або щось подібне.