В jQuery вы можете fadeOut (), не теряя недвижимость элемента?(невидимый и не показанный: нет) - PullRequest
4 голосов
/ 19 июня 2010

Поскольку мне нужно снова вызвать fadeIn () другого элемента того же размера, существует ли способ для fadeOut () элемента, чтобы сохранить пространство, чтобы другие элементы не перетекали в течение доли секундыи тогда fadeIn () вернет другой элемент с таким же размером?

Ответы [ 4 ]

9 голосов
/ 19 июня 2010

На ум приходят две техники:

  1. Оберните элемент в элемент div, занимающий правильное количество места.измените непрозрачность элемента со 100% до 0%, затем, когда анимация завершится, поменяйте местами новый элемент и снова используйте animate, чтобы изменить непрозрачность с 0% до 100%.
2 голосов
/ 19 июня 2010

Держите элемент, который вы хотите, чтобы он исчез в фиксированном <div style="display:block;width:300px;height:200px;">, тогда, если вы скроете элемент внутри него, это никак не повлияет на макет.

2 голосов
/ 19 июня 2010

я предлагаю вам обернуть его div ... и поместить то же измерение в этот div ...

0 голосов
/ 27 мая 2014

Я сделал свое собственное исправление. Перед запуском 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();
...