Это решение, которое я придумал, в начале перехода вы вызываете функцию map.resize () каждые 10 мс, а затем останавливаете интервал после завершения перехода, в итоге он выглядит совсем немного Smooth.
let mapResizer;
countryPanel.addEventListener("transitionstart", (e) => {
if (e.target == countryPanel) {
mapResizer = setInterval(map.resize, 10);
}
})
countryPanel.addEventListener("transitionend", (e) => {
if (e.target == countryPanel) {
if (e.target.classList.contains("hide")) {
showBtn.hidden = false;
}
clearInterval(mapResizer);
}
})
Вот веб-сайт, показывающий эффект при нажатии кнопки скрытия пользовательского интерфейса (маленькая стрелка, указывающая влево): https://people.rit.edu/ajr6974/330/Project%203/