uniapp实现全局设置字体大小(字体大小切换)

效果图

uniapp实现全局设置字体大小(字体大小切换)_第1张图片

实现步骤

1.安装配置postcss-px-to-viewpor

 npm install postcss-px-to-viewport --save-dev

2.根目录下创建一个 postcss.config.js文件,文件内容如下:

const path = require('path')
module.exports = {
  parser: 'postcss-comment',
  plugins: {
    'postcss-import': {
      resolve(id, basedir, importOptions) {
        if (id.startsWith('~@/')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3))
        } else if (id.startsWith('@/')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2))
        } else if (id.startsWith('/') && !id.startsWith('//')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1))
        }
        return id
      }
    },
    'autoprefixer': {
      overrideBrowserslist: ["Android >= 4", "ios >= 8"],
      remove: process.env.UNI_PLATFORM !== 'h5'
    },
    // 借助postcss-px-to-viewport插件,实现px转rem,文档:https://github.com/evrone/postcss-px-to-viewport/blob/master/README_CN.md
    // 以下配置,可以将px转换为rem,如果要调整比例,可以调整 viewportWidth 来实现
    'postcss-px-to-viewport': {
      unitToConvert: 'rpx', // 需要转换的单位。我这里是rpx,如果你的项目都是用的px,就改成px
      viewportWidth: 750,// 密度,一般为750 || 375。这里可以自己修改
      unitPrecision: 2,
      propList: ['font-size'],
      // viewportUnit: "rem", // 指定需要转换成的视窗单位,默认vw
      fontViewportUnit: 'rem', // 字体需要转成的单位,只针对 font-size 属性
      selectorBlackList: [],
      minPixelValue: 1,
      mediaQuery: false,
      replace: true,
      exclude: undefined,
      include: undefined,
      landscape: false
    },
    '@dcloudio/vue-cli-plugin-uni/packages/postcss': {}
  }
}

3,把设置得字体大小数据放到缓存里

uni.setStorageSync("fontSize", this.fontValue)

4利用滑块,设置font-size的值。点击确定后,要把所设置的值写入缓存里



5.在需要用到的页面加上page-meta。如果是全局修改,就需要全部页面都加上这

你可能感兴趣的:(uniapp,uni-app,javascript,前端)