一、需求
项目经理说有些用户是老人,字太小看不清,但有些用户是年轻人,字太大显得笨拙,那好吧,给你自行设置好了!
问题来了,手机系统设置的字体大小,打开小程序,木有作用T^T,看来只能自己做了。

二、方法
因为我用的是原生小程序开发,还好看到官方的page-meta方法,要不然估计只能转uniapp那种基于vue的框架才能实现了吧(没想到有什么好的办法了)。

三、page-meta介绍

https://developers.weixin.qq.com/miniprogram/dev/component/page-meta.html

  • 设置字体大小功能可以用里边的 root-font-size 参数 和 page-font-size参数


(page-meta还有很多好用的参数配置,比如动态设置窗口背景颜色、下拉背景、滚动位置等等)

四、page-meta使用方法

  1. 在需要改变字体大小的wxml页面的 第一个节点 加上:(就是最头头,不要在任何view内)

    pageFontSize和rootFontSize设置为可配置

<page-metapage-font-size="{{pageFontSize}}"root-font-size="{{rootFontSize}}"
>
</page-meta>

page-font-size参数是没有赋予任何字体样式的页面page字体大小,我这里用的是rem;
root-font-size参数是页面的根字体大小,也就是赋予了样式的字体大小,我这里用的是rem的格式。

  1. 改样式。之前我给字体设置的样式都是rpx的,是无效的,要都改成rem,除了字体试了一下高度宽度等等也能设置成rem,并根据动态配置缩小放大。

  2. 做一个配置字体大中小的功能,效果:

  • 我用的是本地缓存getStorageSync存储当前设置的字体大小的倍数。

wxml:

<mp-dialog title="字体大小设置" show="{{dialogShow}}" bindbuttontap="tapDialogButton" buttons="{{buttons}}" mask-closable="false"><view class="weui-cells weui-cells_after-title un-margin15 "><radio-group bindchange="radioChange" style="width: 100%;"><label class="weui-cell weui-check__label flex_between margin15" wx:for="{{items}}" wx:key="{{item.value}}"><view class="header_h1 lr-margin15" style="font-size: {{item.style}};">{{item.name}}</view><block wx:if="{{item.checked}}"><radio value="{{item.value}}" checked="true"/></block><block wx:else><radio value="{{item.value}}"/></block></label></radio-group></view><view class="flex_center"><button class="buttom_a confirm" style="margin: 30rpx auto;" bindtap="handleAdd">确认设置</button></view><view class="margin15 txt_h2 text-left"><view><span class="text-red">* </span><span>确认设置完毕后需点开右上角 “...” 打开面板,并点击 “<span class="text-red"> 重新进入小程序 </span>”,以便更新字体大小</span></view></view>
</mp-dialog>

js:

Page({data: {dialogShow: false,buttons: [{text: '取消'}],items: [//{value: "1rem", valuePage: "0.64rem", name: '小', checked: false,style: "0.7rem"},//{value: "1.2rem", valuePage: "0.66rem", name: '中', checked: false,style: "0.8rem"},//{value: "1.4rem", valuePage: "0.68rem", name: '大', checked: false,style: "0.9rem"},//{value: "1.6rem", valuePage: "0.75rem", name: '特大', checked: false,style: "1rem"},],rootFontSize: wx.getStorageSync('rootFontSize'),pageFontSize: wx.getStorageSync('pageFontSize'),},tapDialogButton() {this.setData({dialogShow: false})},radioChange(e) {console.log('radio发生change事件,携带value值为:', e.detail.value)const items = this.data.itemsfor (let i = 0, len = items.length; i < len; ++i) {items[i].checked = items[i].value === e.detail.value}this.setData({items})},getCurrentValue: function () {let _this = this;let rootFontSize = _this.data.rootFontSize;let items = [{value: "1rem", valuePage: "0.64rem", name: '小', checked: false,style: "0.7rem"},{value: "1.2rem", valuePage: "0.66rem", name: '中', checked: false,style: "0.8rem"},{value: "1.4rem", valuePage: "0.68rem", name: '大', checked: false,style: "0.9rem"},{value: "1.6rem", valuePage: "0.75rem", name: '特大', checked: false,style: "1rem"},]items.map((item, index)=>{if(rootFontSize){if(item.value === rootFontSize){item.checked = true}}else{items[1].checked = true}})_this.setData({items: items})// debugger},handleAdd: function () {let _this = this;let rootFontSize = _this.data.rootFontSize_this.data.items.map((item, index)=>{if(item.checked === true){wx.setStorageSync("rootFontSize", item.value);wx.setStorageSync("pageFontSize", item.valuePage);app.toast('设置成功!重新进入小程序即可生效', 200)}})// debugger},
}

(这里要注意的是,需要手动点“重新进入小程序”才能生效。)

四、成功实现!

小程序--设置字体大中小功能相关推荐

  1. 小程序设置字体font-family

    不多废话,我今天在整这个需求的时候,经过测试,发现ios和安卓需要不同的处理方式,目前来看缺一不可,直接上方法. 方式一:IOS处理方式 用小程序的API去请求网络资源字体文件 这里需要注意的是: 代 ...

  2. 微信小程序设置字体无效_微信小程序自定义字体及自定义图标问题说明

    自定义图标及自定义字体,一直是很多小程序开发者的心病,其实本站是很多解决方案的,为了集中起来,方便直接跳过此坑,我特别做了这次针对字体及字体图标的跳坑: 相关讨论: Q:小程序开发时能否使用我们自定义 ...

  3. 微信小程序设置字体无效_小程序字体粗细无效 小程序教程

    微信里的小程序字体能调大吗? 谢邀. 微信里的字体是可以设置大小的.在微信"设置"中,点击"通用",可以看到有"字体大小"这一项,用户可以根 ...

  4. 微信小程序设置字体无效_微信小程序字体设置

    一.字体:font.属性在一个声明中设置所有字体属性. 可设置的属性是(按顺序): "font-style font-variant font-weight font-size/line-h ...

  5. 微信小程序设置字体上下左右居中

    今天设置了text-align=center 只水平居中 并没有垂直居中, 最后查阅了资料 添加一个line-height =80rpx 也就是设置自己的高度等于自己的设置的宽度即可

  6. 小程序设置字体大小和字体加粗

  7. 最详细的【微信小程序+阿里云Web服务】开发部署指引(十一):开发小程序设置功能

    文章目录 前言 一.功能说明 二.设置界面代码实现 1.创建界面Page 2.WXML 3.JS 4.WXSS 三.参数控制逻辑代码实现 1.自动跳转卡片 2.自动播放声音 专题文章链接 前言 案例的 ...

  8. 店长宝微信小程序后台功能简介(四)——小程序设置

    本文参考自: 原文地址 继续为大家介绍店长宝微信小程序的后台功能,今天介绍后台中的小程序设置功能. 小程序设置功能:版权设置.个人中心.商家设置.商家手机端.小程序跳转.内嵌网页.门店管理.门面管理. ...

  9. 微信小程序:字体设计符号组合多功能微信小程序源码

    这是一款主打字体设计,符号组合等多模板功能的一款微信小程序源码 内含多种功能,比如: 花式字体设计 表情字体组合设计 翅膀字体组合 火星文一键生成 符号库 空白名称 彩色网名等等 还有很多,所以小编就 ...

最新文章

  1. leetcode算法题--最大平均值和的分组★
  2. 项目经理问:为什么总是只有我在加班 – 挂包袱现象
  3. 2021算法竞赛入门班第十节课【字符串】练习题
  4. Android studio 修改包名 和 版本号
  5. docker将容器设置与宿主机为同一局域网
  6. symfony app dev.php,Symfony 2:404未找到当tryes打开/app_dev.php时出错
  7. Struts与Struts2的区别
  8. Keras 多层感知机 多类别的 softmax 分类模型代码
  9. React-Native 在 mac 下 build 问题
  10. Android之崩溃日志本地存储与远程保存
  11. Gaussian09 optimization trajectory: python script
  12. 如何配置服务器的安全?
  13. Apache ShenYu源码阅读系列-注册中心实现原理之Http注册
  14. 爆破专用中国姓名排行TOP500
  15. 触摸式开关简单入门教程
  16. 电子学推动计算机产业,自旋电子学和计算机硬件产业!-物理杂志.PDF
  17. stm32及LPC1768库函数串口输出重定向
  18. Android 5.0 调色 Palette调色功能
  19. Fast-Livo:快速紧耦合稀疏-DirectLiDAR-惯性视觉里程计
  20. 计算机组成原理——数据通路实例

热门文章

  1. 三维材质纹理贴图资源
  2. 不同游戏的不同反作弊引擎
  3. torch.from_numpy()完成numpy到tensor数组的转换
  4. DVD制作及转换RMVB的操作方法
  5. 三星c7pro android版本,都来了:三星Galaxy C5/C7 Pro升级安卓7.0
  6. 一款好用的下载神器Motrix
  7. linux命令中 “|” 管道符号
  8. C语言五子棋禁手算法的编写,基于C语言的五子棋辅助软件的设计与实现.doc
  9. 英语单词 2022.10.11
  10. springboot项目系列-论坛系统04登录注册实现