最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實現(xiàn)移動端頁面按手機屏幕分辨率自動縮放的最強代碼

 更新時間:2017年08月18日 11:17:15   作者:蓓蕾心晴  
這篇文章主要介紹了JavaScript實現(xiàn)移動端頁面按手機屏幕分辨率自動縮放的最強代碼,通過阻止瀏覽器的默認(rèn)行為各方面分析縮放的功能實現(xiàn),具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。
 手機的屏幕有大有小,移動web最好做成響應(yīng)式布局,也就是自適應(yīng)屏幕,沒有固定寬高,這樣的話,在所有手機上都可以正常顯示。關(guān)于移動端頁面按手機屏幕分辨率自動縮放的js,先附上代碼
<script>
 var phoneWidth = parseInt(window.screen.width);
 var phoneHeight = parseInt(window.screen.height);
 var phoneScale = phoneWidth/750;//除以的值按手機的物理分辨率
 var ua = navigator.userAgent;
 if (/Android (\d+\.\d+)/.test(ua)) {
 var version = parseFloat(RegExp.$1);
 // andriod 2.3
 if (version > 2.3) {
 document.write('<meta name="viewport" content="width=device-width,initial-scale='+phoneScale+',minimum-scale='+phoneScale+',maximum-scale='+phoneScale+',user-scalable=no">');
 // andriod 2.3以上
 } else {
 document.write('<meta name="viewport" content="width=device-width,user-scalable=no">');
 }
 // 其他系統(tǒng)
 } else {
 document.write('<meta name="viewport" content="width=device-width, initial-scale='+phoneScale+',minimum-scale='+phoneScale+',maximum-scale ='+phoneScale +',user-scalable=no,">');
 }
</script>      

做手機端頁面最頭疼的就是物理分辨率和邏輯分辨率的轉(zhuǎn)換了,當(dāng)拿到設(shè)計圖的時候,圖基本都是按物理分辨率來設(shè)計的,一般常用的為640(iphone5/5s)、750(iphone6/6s),而谷歌等瀏覽器采用小手機模式瀏覽頁面的時候,上面的值為邏輯分辨率,調(diào)試的時候很難把控頁面樣式,在手機端的樣式也會因此大亂,在頁面頭部加入以上一段js之后,在手機端就可以正常顯示了,

var phoneScale = phoneWidth/750;

除以的為設(shè)計圖設(shè)計的頁面寬度,750是按iphone6來設(shè)計(根據(jù)自己使用需求來修改),即讓頁面的 放大比率=屏幕的邏輯分辨率/物理分辨率,從而達(dá)到適應(yīng)手機的效果。

(注意,有時候頁面加了這段代碼在調(diào)試的時候,切記刷新,刷新過后就會按手機縮放比例顯示)

概念解析:

phys.width:一般我們所指的寬度width即為phys.width,物理寬度(物理分辨率)

device-width:又稱為css-width,設(shè)備寬度(邏輯分辨率)

其中我們可以獲取phys.width通過document.documentElement.clientWidth;

而獲取css-width通過 window.screen.width獲取。

所以這里  phoneWidth(邏輯分辨率) = parseInt(window.screen.width);

如iphone6的phys.width為750px,而css-width為375px。

明白一個瀏覽器默認(rèn)行為。

試想,瀏覽器如果把電腦端的980px的網(wǎng)頁展現(xiàn)在寬度為750px的iphone6手機屏上,勢必會放不下,手機端橫向會出現(xiàn)滾動條,怎么阻止這種情況呢,很簡單,瀏覽器默認(rèn)一個虛擬窗口,不同瀏覽器有不同的虛擬窗口寬度的默認(rèn)值如:safari iphone:980px;

opera:850px;

Andriod webkit:800px;

IE:974px;

然后會把這個980px虛擬窗口裝進(jìn)寬度為750px的iphone6中,當(dāng)然這樣的話必須縮放,這就是為什么在手機中展現(xiàn)電腦端頁面沒有出現(xiàn)橫向滾動條,而且字跡明顯變小的原因。

initial-scale='+phoneScale+',minimum-scale='+phoneScale+',maximum-scale='+phoneScale+'

這段代碼切記要指定 initial-scale=***,在安卓系統(tǒng)中,不指定默認(rèn)的nitial-scale=***,只指定最小和最大縮放值,也可以正常顯示,但是safari瀏覽器則會失效,對于寬度是100%的頁面, 則顯示為頁面的30%左右的寬。

target-densitydpi=device-dpi

WebKit內(nèi)核默認(rèn)按照160的DPI來排版。假如設(shè)備真實DPI是480,寬度是1080,在WebKit會按160DPI,360寬度來排版。排版結(jié)束后在放大到1080寬。

所以當(dāng)取window.innerwidth之類的值的時候,取的是WebKit實際排版寬度360,而不是1080.

target-densitydpi=device-dpi可以強制內(nèi)核以480DPI排版,使畫面更精細(xì),window.innerwidth也將為屏幕寬度1080.

但WebKit從去年開始取消了對target-densitydpi的支持。(所以現(xiàn)在不建議寫該屬性了)

想實現(xiàn)target-densitydpi=device-dpi的效果有什么方法?提交此次補丁的WebKit開發(fā)者說可以用responsive images 和 CSS device units來替代。

參考鏈接:

http://m.fzitv.net/article/121524.htm

http://m.fzitv.net/article/121515.htm

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助~如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持!

相關(guān)文章

  • js使用正則表達(dá)式對身份證號的判斷

    js使用正則表達(dá)式對身份證號的判斷

    這篇文章主要給大家介紹了關(guān)于js使用正則表達(dá)式對身份證號的判斷的相關(guān)資料,在用戶注冊頁面有些需求要求的比較嚴(yán)格,需要對身份證驗證是否合法,通過此功能嚴(yán)格此系統(tǒng)軟件,從而過濾到很多,需要的朋友可以參考下
    2023-08-08
  • 讓firefox支持IE的一些方法的javascript擴展函數(shù)代碼

    讓firefox支持IE的一些方法的javascript擴展函數(shù)代碼

    因為一些代碼,只能在IE下實現(xiàn),如果用firefox實現(xiàn)就必須用一些擴展函數(shù)。
    2010-01-01
  • JS實現(xiàn)電商放大鏡效果

    JS實現(xiàn)電商放大鏡效果

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)電商放大鏡效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • js實現(xiàn)購物網(wǎng)站放大鏡功能

    js實現(xiàn)購物網(wǎng)站放大鏡功能

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)購物網(wǎng)站放大鏡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 利用HTML與JavaScript實現(xiàn)注冊頁面源碼

    利用HTML與JavaScript實現(xiàn)注冊頁面源碼

    這篇文章主要給大家介紹了關(guān)于利用HTML與JavaScript實現(xiàn)注冊頁面的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對大家實現(xiàn)注冊頁面具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-12-12
  • JS實現(xiàn)消息來時讓網(wǎng)頁標(biāo)題閃動效果的方法

    JS實現(xiàn)消息來時讓網(wǎng)頁標(biāo)題閃動效果的方法

    這篇文章主要介紹了JS實現(xiàn)消息來時讓網(wǎng)頁標(biāo)題閃動效果的方法,實例分析了JavaScript基于時間函數(shù)動態(tài)操作頁面元素的技巧,并附帶了開心網(wǎng)的標(biāo)題閃動解決方案,需要的朋友可以參考下
    2016-04-04
  • JavaScript定時器實現(xiàn)無縫滾動圖片

    JavaScript定時器實現(xiàn)無縫滾動圖片

    這篇文章主要為大家詳細(xì)介紹了JavaScript定時器實現(xiàn)無縫滾動圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • JS對象復(fù)制(深拷貝和淺拷貝)

    JS對象復(fù)制(深拷貝和淺拷貝)

    這篇文章主要介紹了JS對象復(fù)制(深拷貝和淺拷貝),并附有詳細(xì)代碼,感興趣的小伙伴們,可以參考下
    2021-04-04
  • django admin 使用SimpleUI自定義按鈕彈窗框示例

    django admin 使用SimpleUI自定義按鈕彈窗框示例

    Django 后臺admin有大量的屬性和方法,擁有強大的功能和自定義能力,這篇文章主要介紹了django admin 使用SimpleUI自定義按鈕彈窗框示例,需要的朋友可以參考下
    2023-04-04
  • JavaScript雙向鏈表實現(xiàn)LRU緩存算法的示例代碼

    JavaScript雙向鏈表實現(xiàn)LRU緩存算法的示例代碼

    本文主要介紹了JavaScript雙向鏈表實現(xiàn)LRU緩存算法的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

泸州市| 南昌县| 怀仁县| 报价| 平武县| 尉氏县| 宿迁市| 芦山县| 临汾市| 乌拉特后旗| 庆元县| 沙洋县| 灵石县| 读书| 祁东县| 云梦县| 夏津县| 神木县| 大宁县| 英吉沙县| 海晏县| 凉城县| 百色市| 绥宁县| 滨州市| 北安市| 辽宁省| 连城县| 句容市| 博乐市| 田东县| 通河县| 永嘉县| 古交市| 巴青县| 南华县| 慈溪市| 承德县| 通山县| 元朗区| 西林县|