40 lines
1.0 KiB
JavaScript
Executable File
40 lines
1.0 KiB
JavaScript
Executable File
(function(window, document) {
|
|
var sizeUI = 750 // 定义设计图尺寸
|
|
var remBase = 75 // 定义基准值
|
|
var docEl = document.documentElement
|
|
var bodyEl = document.querySelector('body')
|
|
|
|
setRemUnit()
|
|
|
|
window.addEventListener('resize', setRemUnit)
|
|
window.addEventListener('pageshow', function(e) {
|
|
if (e.persisted) setRemUnit()
|
|
})
|
|
|
|
function setRemUnit() {
|
|
var docFontSize = docEl.clientWidth / sizeUI * remBase
|
|
docEl.style.fontSize = docFontSize + 'px'
|
|
bodyEl.style.fontSize = 16 / docFontSize + 'rem'
|
|
handleRemAdapt()
|
|
}
|
|
|
|
function handleRemAdapt() {
|
|
var currentFontSize = parseInt(docEl.style.fontSize)
|
|
var temp = currentFontSize
|
|
for (var i = 0; i < 100; i++) {
|
|
var realFontSize = parseInt(window.getComputedStyle(docEl).fontSize)
|
|
var differ = realFontSize - currentFontSize
|
|
if (Math.abs(differ) >= 1) {
|
|
if (differ > 0) {
|
|
temp--
|
|
} else {
|
|
temp++
|
|
}
|
|
docEl.style.fontSize = temp + 'px'
|
|
} else {
|
|
break
|
|
}
|
|
}
|
|
}
|
|
})(window, document)
|