Closed timelic closed 1 month ago
我知道一般的ui库是可以通过postcss自动转换的。但这次我遇到一个canvas组件,需要传入px来绘制。
行内样式要套运行时的函数:
/**
* 限制大小的 vw 转换
* @param {number} n
* @param {number} idealWidth 理想宽度,设计稿的宽度
* @param {number} maxWidth 表示伸缩视图的最大宽度
*/
export function vw(n, idealWidth = 375, maxWidth = 600) {
if (n === 0)
return n
const vwN = Math.round(n * 100 / idealWidth)
const maxN = Math.round(n * maxWidth / idealWidth)
const cssF = n > 0 ? 'min' : 'max'
return `${cssF}(${vwN}vw, ${maxN}px)`
}
可以参考下上面这个,存在工具文件里导出来,行内样式套就可以了,vw(375) 运行时变成 min(100vw, 600px)。
或者可以用 scale-view 这个库安装导入使用。
get!非常感谢
遇到这样一个场景,有一些参数需要js传入px的数值,而不是通过css设置的。
想问下插件是否有提供某个可以导入js内的方法,输入预设的px数值得到转换后的数值?
比如我预设是12px,在某个大屏下应该映射到16px。这个时候就需要一个转换方法。