我有这个:
function searchOpen() { $('.nav__item__account').addClass('nav__item__account--open'); $('.nav__item__account-dropdown').slideDown(250); $('.nav__item__account-dropdown').addClass('nav__item__account-dropdown--open'); $('.nav__item__account-dropdown input').focus(); } function searchClose() { $('.nav__item__account').removeClass('nav__item__account--open'); $('.nav__item__account-dropdown').slideUp(250); } function searchDropdown() { if ($('.nav__item__account-dropdown').is(":visible")) { searchClose(); } else { searchOpen(); } }
nav__item__account-dropdown的CSS – open是:
.nav__item__account-dropdown--open { display: flex !important; justify-content: center; }
虽然这种解决方法有效,但在滑动完成之前会删除display:flex,这会导致一些不需要的视觉效果.
有没有办法让slideUp()和slideDown()应用display:flex而不是display:block?
解决方法
请尝试以下开始回调:
$(".item").slideDown({ start: function () { $(this).css({ display: "flex" }) } });