uni-app中px與rpx的轉(zhuǎn)換方法
第一種轉(zhuǎn)換方法:
由rpx的微信官方介紹可知
rpx(responsive pixel): 可以根據(jù)屏幕寬度進(jìn)行自適應(yīng)。規(guī)定屏幕寬為750rpx。
如在 iPhone6 上,屏幕寬度為375px,共有750個(gè)物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
由此得知是以750物理像素為基準(zhǔn):
px / rpx = screenWidth / 750
由此得知:
- rpx = (750 px) / screenWidth
- px = (screenWidth rpx) / 750
// rpx轉(zhuǎn)px rpxToPx(rpx) { const screenWidth = uni.getSystemInfoSync().screenWidth return (screenWidth * Number.parseInt(rpx)) / 750 } // px轉(zhuǎn)rpx pxToRpx(px) { const screenWidth = uni.getSystemInfoSync().screenWidth return (750 * Number.parseInt(px)) / screenWidth }
第二種轉(zhuǎn)換方法:
uniapp 內(nèi)置的轉(zhuǎn)換方法
// rpx轉(zhuǎn)px rpxToPx(rpx) { return uni.upx2px(rpx) } // px轉(zhuǎn)rpx pxToRpx(px) { //計(jì)算比例 let scale = uni.upx2px(100)/100; return px/scale },
補(bǔ)充:?jiǎn)挝晦D(zhuǎn)換公式
說了這么一大堆,我們?cè)賮?lái)看看rpx
和px
有什么關(guān)系。
rpx單位規(guī)定如果在iPhone6下,也就是屏幕寬度375px,則
- 750rpx = 375px = 750物理像素
- 1rpx = 0.5px = 1物理像素
這也是很多人推薦用iphone6模擬開發(fā)的原因之一,單位轉(zhuǎn)換很直觀,就是2:1,但是不是在所有設(shè)備上都是2:1呢?曾經(jīng)我也是怎么認(rèn)為的,然后老出bug.....,其實(shí)這是有轉(zhuǎn)化公式的,不是簡(jiǎn)簡(jiǎn)單單的2:1。
總的來(lái)說,還是以750這個(gè)物理像素為基準(zhǔn)
px / rpx = screenWidth / 750
然后我們就可以推出:
rpx = (750 * px) / screenWidth
px = (screenWidth * rpx) / 750
// rpx轉(zhuǎn)px rpxToPx(rpx) { const screenWidth = uni.getSystemInfoSync().screenWidth return (screenWidth * Number.parseInt(rpx)) / 750 } // px轉(zhuǎn)rpx pxToRpx(px) { const screenWidth = uni.getSystemInfoSync().screenWidth return (750 * Number.parseInt(px)) / screenWidth }
總結(jié)
到此這篇關(guān)于uni-app中px與rpx的轉(zhuǎn)換方法的文章就介紹到這了,更多相關(guān)uni-app px與rpx轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript+Canvas實(shí)現(xiàn)彩色圖片轉(zhuǎn)換成黑白圖片的方法分析
這篇文章主要介紹了JavaScript+Canvas實(shí)現(xiàn)彩色圖片轉(zhuǎn)換成黑白圖片的方法,結(jié)合實(shí)例形式分析了javascript結(jié)合HTML5相關(guān)函數(shù)修改頁(yè)面圖片元素顯示效果相關(guān)操作技巧,需要的朋友可以參考下2018-07-07JavaScript實(shí)現(xiàn)寫入文件到本地的方法【基于FileSaver.js插件】
這篇文章主要介紹了JavaScript實(shí)現(xiàn)寫入文件到本地的方法,結(jié)合實(shí)例形式分析了基于FileSaver.js插件實(shí)現(xiàn)保存文件到本地的相關(guān)操作技巧,并附帶FileSaver.js插件完整源碼,需要的朋友可以參考下2018-03-03JS中FileReader類實(shí)現(xiàn)文件上傳及時(shí)預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹了JS中FileReader類實(shí)現(xiàn)文件上傳及時(shí)預(yù)覽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03js實(shí)現(xiàn)頁(yè)面導(dǎo)航層級(jí)指示效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)頁(yè)面導(dǎo)航層級(jí)指示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08javascript中callee與caller的區(qū)別分析
有些小伙伴可能會(huì)問caller,callee 是什么?在javascript 中有什么樣的作用?那么本篇會(huì)對(duì)于此做一些基本介紹。希望能夠?qū)Υ蠹依斫鈐avascript中的callee與caller有所幫助。2015-04-04用js將long型數(shù)據(jù)轉(zhuǎn)換成date型或datetime型的實(shí)例
下面小編就為大家?guī)?lái)一篇用js將long型數(shù)據(jù)轉(zhuǎn)換成date型或datetime型的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-07-07jquery $(document).ready()和window.onload的區(qū)別淺析
這篇文章主要介紹了jquery $(document).ready()和 window.onload的區(qū)別淺析,本文總結(jié)了執(zhí)行時(shí)間、編寫個(gè)數(shù)不同、簡(jiǎn)化寫法等不同的地方,需要的朋友可以參考下2015-02-02基于javascript實(shí)現(xiàn)按圓形排列DIV元素(二)
本篇文章主要介紹基于javascript實(shí)現(xiàn)按圓形排列DIV元素的方法,此文著重于介紹怎樣實(shí)現(xiàn)的按圓形排列DIV元素的運(yùn)動(dòng)原理和實(shí)現(xiàn)效果代碼,需要的朋友來(lái)看下吧2016-12-12