這個問題可以簡稱為:uniapp vue 獲取可視窗口高度
第一種方案,只改變css樣式
/* 不考慮瀏覽器UI的最小視口高度 */
.element {height: 100svh; /* small viewport height */
}/* 考慮瀏覽器UI變化的動態視口高度 */
.element {height: 100dvh; /* dynamic viewport height */
}
只需把100vh
改為100svh
或100dvh
方法簡單,一般新的瀏覽器都支持,但舊的可能不一定
第二種方案,使用 JavaScript 設置 CSS 變量
// 設置真實視口高度
document.documentElement.style.setProperty('--real-vh', `${document.documentElement.clientHeight}px`);
.element {height: var(--real-vh, 100vh); /* 回退到100vh */
}
document.documentElement.clientHeight
是最可靠的方法,因為它直接返回視口高度,不包括滾動條。