移動端高清適配


JS部分

var dpr, rem, scale;
var docEl = document.documentElement;
var fontEl = document.createElement('style');
var metaEl = document.querySelector('meta[name="viewport"]');
dpr = window.devicePixelRatio || 1;
console.log(dpr);
rem = docEl.clientWidth * dpr / 16;
scale = 1 / dpr;
// 設置viewport,進行縮放,達到高清效果
metaEl.setAttribute('content', 'width=' + dpr * docEl.clientWidth + ',initial-scale=' + scale + ',maximum-scale=' + scale + ', minimum-scale=' + scale + ',user-scalable=no');
// 設置data-dpr屬性,留作的css hack之用
docEl.setAttribute('data-dpr', dpr);
// 動態(tài)寫入樣式
docEl.firstElementChild.appendChild(fontEl);
fontEl.innerHTML = 'html{font-size:' + rem + 'px!important;}';
// 給js調(diào)用的,某一dpr下rem和px之間的轉(zhuǎn)換函數(shù)
window.rem2px = function(v) {
v = parseFloat(v);
return v * rem;
};
window.px2rem = function(v) {
v = parseFloat(v);
return v / rem;
};
window.dpr = dpr;
window.rem = rem;
========================================================


Less部分

//這里主要是rem字體大小有變化,這里主要是兼容手機端
.px2px(@name, @px){
@{name}: round(@px / 2) * 1px;
[data-dpr="1"] & {
@{name}: @px * 1px;
}
[data-dpr="2"] & {
@{name}: @px * 1px;
}
// for mx3
[data-dpr="2.5"] & {
@{name}: round(@px * 2.5 / 2) * 1px;
}
// for 小米note
[data-dpr="2.75"] & {
@{name}: round(@px * 2.75 / 2) * 1px;
}
[data-dpr="3"] & {
@{name}: round(@px / 2 * 3) * 1px
}
// for 三星note4
[data-dpr="4"] & {
@{name}: @px * 2px;
}
}

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 移動端布局,為了適應大屏手機,最好的方案是采用相對 單位rem基于rem的原理,我們要做的就是: 針對不同...
    小韜wen閱讀 815評論 0 0
  • 剛開始做移動端web開發(fā)的同學應該都碰到過頁面適配問題,為什么我在開發(fā)手機上調(diào)試好的頁面在其他手機會有這樣或那樣的...
    留七七閱讀 19,780評論 5 80
  • 移動端布局,為了適配各種大屏手機,目前最好的方案莫過于使用相對單位 rem. 基于rem的原理,我們要做的就是針對...
    DontPushMeForev閱讀 556評論 0 0
  • 方案一: 最新方案:(隆重推薦) 1、下載MateHandler.js,并引入頁面2、head里加入 3、設置bo...
    晨光2016閱讀 964評論 0 0
  • 在移動互聯(lián)網(wǎng)快速發(fā)展的今天,手機的種類和尺寸越來越多,作為前端的小伙伴們可能會越來越頭疼,但又不得不去適配一款又一...
    keenjaan閱讀 27,242評論 9 86

友情鏈接更多精彩內(nèi)容