/** * 根据模板布局大小动态计算用户手机布局相对大小 * */module.exports = { /** * 模板Width=1080,Height=1920 */ base: { base: { /** * 大屏策略 * 绘图:原来T的基础上增加N倍或者减少N倍 例:T=T+(T*N) */ baseFont: 0.0, /** * 大屏策略 * 绘图:原来T的基础上增加N倍或者减少N倍 例:T=T+(T*N) */ baseWidh: 0.0, /** * 大屏策略 * 绘图:原来T的基础上增加N倍或者减少N倍 例:T=T+(T*N) */ baseHeight: 0.0 }, initi:false, setInitiResize: function() { this.initi=true; var windowHeight = wx.getSystemInfoSync().windowHeight; var windowWidth = wx.getSystemInfoSync().windowWidth; this.base.baseFont = base.baseWidh = new Number(this.getSelfAdaptionBaseW(windowWidth, 1080)); this.base.baseHeight = new Number(this.getSelfAdaptionBaseH(windowHeight, 1920)); }, getSelfAdaptionBaseW: function(windowWidth, base) { return ((windowWidth - base) / base); }, getSelfAdaptionBaseH: function(windowHeight, base) { return ((windowHeight - base) / base); }, /** * 返回相对宽度,最小1 * @param {Object} k */ getBaseResizeW: function(k) { if (k == 0) { return 0; } var t = k + (k * this.base.baseWidh); if (t > 1) { return t; } return 1; }, /** * 返回相对字体大小,最小5 * @param {Object} k */ getBaseResizeF: function(k) { if(!this.initi){ this.setInitiResize(); } if (k == 0) { return 0; } var t = k + (k * this.base.baseFont); if (t > 5) { return t; } return 5; }, /** * 返回相对高度,最小5 * @param {Object} k */ getBaseResizeH: function(k) { if (!this.initi) { this.setInitiResize(); } if (k == 0) { return 0; } var t = k + (k * this.base.baseHeight); if (t > 1) { return t; } return 1; }, getBaseResizePX: function (k, base) { if (!this.initi) { this.setInitiResize(); } if (k == 0) { return 0; } var t = k + (k * this.base.baseWidh); if (t > 1) { return t; } return 1; }, /** * * 返回相对rem大小,最小1 * @param {Object} k */ getBaseResize: function(k) { k = k * 16; return this.getBaseResizePX(k); } }, /** * 模板Width=base=?,Height=base=? */ custom:{ getSelfAdaptionBaseW: function (base) { var windowWidth = wx.getSystemInfoSync().windowWidth; return ((windowWidth - base) / base); }, getSelfAdaptionBaseF: function (base) { return getSelfAdaptionBaseW(base); }, getSelfAdaptionBaseH: function (base) { var windowHeight = wx.getSystemInfoSync().windowHeight; return ((windowHeight - base) / base); }, /** * 返回相对宽度,最小1 * @param {Object} k */ getBaseResizeW: function(k, base) { if (k == 0) { return 0; } var t = k + (k * this.getSelfAdaptionBaseW(base)); if (t > 1) { return t; } return 1; }, /** * 返回相对字体大小,最小5 * @param {Object} k */ getBaseResizeF: function(k, base) { if (k == 0) { return 0; } var t = k + (k * this.getSelfAdaptionBaseF(base)); if (t > 5) { return t; } return 5; }, /** * 返回相对高度,最小5 * @param {Object} k */ getBaseResizeH: function(k, base) { if (k == 0) { return 0; } var t = k + (k * this.getSelfAdaptionBaseH(base)); if (t > 1) { return t; } return 1; }, /** * * 返回相对px大小,最小1 * @param {Object} k */ getBaseResizePX: function(k, base) { if (k == 0) { return 0; } var t = k + (k * this.getSelfAdaptionBaseW(base)); if (t > 1) { return t; } return 1; }, /** * * 返回相对rem大小,最小1 * @param {Object} k */ getBaseResize: function(k, base) { k = k * 16; return this.getBaseResizePX(k, base); } }} |
包含两种方式,一种默认模板大小(base),第二种不固定模板大小(custom)
