На моей странице у меня есть куча (около 30) узлов dom, которые должны быть добавлены невидимыми и исчезают, когда они полностью загружены.
Элементам нужен стиль display: inline-block.
Я хотел бы использовать функцию jquery .fadeIn (). Для этого необходимо, чтобы элемент изначально имел display: none; правило, чтобы изначально скрыть это. После fadeIn () элементы вне курса имеют отображение по умолчанию: inherit;
Как я могу использовать функцию затухания с отображаемым значением, отличным от наследования?
$("div").fadeIn().css("display","inline-block");
источник
$("div").fadeIn().css("display","");
$("div").fadeIn("400", function(){ $(this).css("display","inline-block"); });
чтобы убедиться, что display: inline-block выполняется, когда fadein законченЧтобы конкретизировать хорошую идею Фила, вот fadeIn (), который загружает затухания в каждый элемент с классом .faded по очереди, преобразованным в animate ():
Старый:
Новое:
Надеюсь, это поможет другому новичку jQuery, как я :) Если есть лучший способ сделать это, сообщите нам!
источник
Ответ Макуры не сработал для меня, поэтому мое решение было
hide
применяется немедленно,display: none
но перед этим он сохраняет текущее отображаемое значение в кеше данных jQuery, который будет восстановлен при последующих вызовах анимации.Итак,
div
запускается статически какdisplay: none
. Затем он устанавливаетсяinline-block
и сразу же скрывается, чтобы затемняться обратно вinline-block
источник
Согласно документации jQuery для
.show()
,Итак, моим решением этой проблемы было применение правила css к классу display: inline-block для элемента, затем я добавил еще один класс под названием «hide», который применяет display: none; Когда я нахожусь
.show()
на элементе, он показывает встроенный.источник
#el{display:inline-block;display:none;}
а затем запускаете,$('#el').fadeIn();
вы получаете встроенный блок. Но это не так.Это работает даже с
display:none
предустановкой css. Использовать(а также
$('#element').fadeOut().removeClass('displaytype');
)с настройкой в CSS:
Я считаю, что это обходной путь, поскольку я считаю,
fadeIn()
что он должен работать так, чтобы он просто удалял последнее правило -display:none
если он установлен,#element{display:inline-block;display:none;}
но он неправильно удаляет оба.источник