export const resetPc = () => {
var wH = window.innerHeight; // 當前窗口的高度
var wW = window.innerWidth; // 當前窗口的寬度
var whdef = 100 / 1920; // 表示1920的設計圖,使用100PX的默認值
if (wW > 1400) {
var rem = wW * whdef; // 以默認比例值乘以當前窗口寬度,得到該寬度下的相應FONT-SIZE值
var html = document.documentElement;
html.style.fontSize = rem + "px"; //適用於PC網站
} else {
var rem = 1400 * whdef;
var html = document.documentElement;
html.style.fontSize = rem + "px";
}
}
- 將上面的代碼在項目啓動的時候進行初始加載;
- 這裏主要設置的是html的根字體大小,需要進行body的字體大小的初始化,我一般設置
font-size:14px
,否則會導致頁面的部分字體變大; - 這裏的是頁面的初次加載的時候進行引入初始,但不推薦
window.addEventListener("resize", function() {})
進行頁面的動態監聽,因爲頁面的窗口不像手機,可以隨意的調整瀏覽器窗口的大小,這樣會導致頁面的不斷重繪和重排,影響性能,所以我在上述代碼中以1400寬度進行分界線,相應的body會有個對應的最小寬度,我設置的是1000px;
4.對應的代碼加上去後,根字體的大小相對於1920的大小是100px;所以後面的px也要相應的用rem代替,我是通過對應的sass進行換算如下:
@function pcPx2rem($px) {
$rem: 100px;
@return ($px/$rem)+rem;
}
5.對應的手機端的適配和手機端類似,有webpack的可以直接用對應的插件進行轉換這裏就不過多的進行敘述。