flexible.js 移动端自适应 rem

(function flexible(window, document) {

var docEl = document.documentElement

var dpr = window.devicePixelRatio || 1

 

// adjust body font size

function setBodyFontSize() {

if (document.body) {

document.body.style.fontSize = (12 * dpr) + 'px'

} else {

document.addEventListener('DOMContentLoaded', setBodyFontSize)

}

}

setBodyFontSize();

 

// set 1rem = viewWidth / 10

// 设计图是 750px 推荐改成 7.5

// 设计图如果是640px 推荐改成 6.4

 

function setRemUnit() {

var rem = docEl.clientWidth / 7.5

docEl.style.fontSize = rem + 'px'

}

 

setRemUnit()

 

// reset rem unit on page resize

window.addEventListener('resize', setRemUnit)

window.addEventListener('pageshow', function(e) {

if (e.persisted) {

setRemUnit()

}

})

 

// detect 0.5px supports

if (dpr >= 2) {

var fakeBody = document.createElement('body')

var testElement = document.createElement('div')

testElement.style.border = '.5px solid transparent'

fakeBody.appendChild(testElement)

docEl.appendChild(fakeBody)

if (testElement.offsetHeight === 1) {

docEl.classList.add('hairlines')

}

docEl.removeChild(fakeBody)

}

}(window, document))

你可能感兴趣的:(js,js,移动端)