用uniapp做电脑大屏展示的h5项目,怎么做?
为什么要用uniapp做,而不是普通的vue项目?因为个人感觉普通的vue项目的node_modules文件夹太大了,导致整个项目太占空间了,所以用uniapp来做。
在page.json 文件的 globalStyle中添加 rpxCalcMaxDeviceWidth 和 rpxCalcBaseDeviceWidth
"globalStyle": {
"rpxCalcMaxDeviceWidth":1920, //windowWidth大于这个值时,使用 rpxCalcBaseDeviceWidth 计算根元素font-size
"rpxCalcBaseDeviceWidth":1920,
}因为是电脑全屏展示的,所以不能用rpx,只能用rem
在uniapp中375px宽时,1rem=16px,如果用rem还需要计算,感觉太麻烦了
因为我平常用rem时习惯了设计图的100px=1rem,750宽时,根元素html的font-size设置为100px,如果设计图是640px宽的,也设置根元素的字号是100px,js来计算不同设备时根元素的字号(也是百度来的(稍作修改),很多年一直在用
),设计图宽是多少就把 750改成多少,最大字号100px,如果不需要可能直接注释掉:
(function(doc, win) {
var docEl = doc.documentElement,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function() {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
if (clientWidth >= 750) {
docEl.style.fontSize = '100px';
} else {
docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
}
};
if (!doc.addEventListener) return;
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);但是在uniapp中,不管怎么写,都不行,750px宽时根元素字号一直是32px,咋整?
我用的HBuilderX软件,查了一下代码,发现根元素字号是这样修改的:

文件在软件安装目录中,路径:HBuilderX\plugins\uniapp-cli-vite\node_modules\@dcloudio\uni-h5\dist\uni-h5.es.js
修改一下这段代码,添加了 remCalcDesignWidth 和 remCalcDesignFontSize(默认值还是和原来一样,375px的时候字号是16px):
function useRem() {
const config = __uniConfig.globalStyle || {};
const maxWidth2 = checkValue$1(config.rpxCalcMaxDeviceWidth, 960);
const baseWidth2 = checkValue$1(config.rpxCalcBaseDeviceWidth, 375);
const designWidth = checkValue$1(config.remCalcDesignWidth, 375); //新增
const designFontSize = checkValue$1(config.remCalcDesignFontSize, 16); //新增
function updateRem() {
let width = getWindowWidth$1();
width = width <= maxWidth2 ? width : baseWidth2;
// document.documentElement.style.fontSize = width / 23.4375 + "px";
document.documentElement.style.fontSize = width / (designWidth/designFontSize) + "px"; //修改
}
updateRem();
document.addEventListener("DOMContentLoaded", updateRem);
window.addEventListener("load", updateRem);
window.addEventListener("resize", updateRem);
}使用的时候在page.json 文件的 globalStyle中添加remCalcDesignWidth 和 remCalcDesignFontSize
"globalStyle": {
"remCalcDesignWidth":1920, //设备宽度,默认375(新增)
"remCalcDesignFontSize":100, //根元素font-size,默认16(新增)
"rpxCalcMaxDeviceWidth":1920, //windowWidth大于这个值时,使用 rpxCalcBaseDeviceWidth 计算根元素font-size
"rpxCalcBaseDeviceWidth":1920,
}这样就可以和普通h5项目一样了,想怎么设置就怎么设置,如果过段时间这样写没有用了,那可能是文件被还原了(目前我还没遇到这个问题)。
下一篇:没有了