当前位置: 首页 > news >正文

使用vuex动态设置全局字号

1.安装vuex

npm install vuex@next --save

2.编写字号设置样式

// 定义字号变量
:root {--font-size: 18px;--font-size-step1: 16px;--font-size-step2: 14px;--font-size-step3: 12px;
}
// 定义样式(全局样式文件)
body, page {font-size: var(--font-size);
}
.f-step1 {font-size: var(--font-size-step1);
}
.f-step2 {font-size: var(--font-size-step2);
}
.f-step3 {font-size: var(--font-size-step3);
}

3.编写动态改变CSS变量的js函数

export function updateCSSVariable(variable, value) {document.documentElement.style.setProperty(variable, value)
}

4.编写vuex状态管理js文件

import { createStore } from 'vuex'
import { updateCSSVariable } from './utils/cssChange.js'
​
const store = createStore({state() {return {fontSize: 18}},actions: {// 调用mutationssetFontSizeAction(context, newSize) {context.commit('setFontSize', newSize)}},mutations: {// 修改状态setFontSize(state, newSize) {if(newSize < 10) {newSize = 10}if(newSize > 32) {newSize = 32}state.fontSize = newSize;updateCSSVariable('--font-size', newSize + 'px');updateCSSVariable('--font-size-step1', (newSize - 2) + 'px');updateCSSVariable('--font-size-step2', (newSize - 4) + 'px');updateCSSVariable('--font-size-step3', (newSize - 6) + 'px');}}
})
​
export default store;

5.main.js全局引入注册store(Vue3)

import store from './store/index.js'
import { createSSRApp } from 'vue'
export function createApp() {const app = createSSRApp(App)app.config.globalProperties.$store = storeapp.use(store)return {app}
}

6.vue文件动态调整字号

<template><view class="center-ver"><image @click="subFontSize" src="/static/icons/sub.png" class="iconImage-20"></image><view class="m-l-r-10">{{fontSize}} px</view><image @click="addFontSzie" src="/static/icons/add.png" class="iconImage-20"></image></view>
</template>
​
<script>
import { computed } from 'vue'
​
export default {data() {const fontSize = computed(() => this.$store.state.fontSize);return {fontSize,}},methods: {addFontSzie() {this.$store.dispatch('setFontSizeAction', this.fontSize + 2)},subFontSize() {this.$store.dispatch('setFontSizeAction', this.fontSize - 2)}}
}
</script>

7.在需要确定字号的地方使用样式

class="f-step1"

http://www.mrgr.cn/news/68299.html

相关文章:

  • Webserver(4.8)UDP、广播、组播
  • 【报告PDF附下载】2024人工智能大模型技术财务应用蓝皮书
  • 【计算机网络】章节 知识点总结
  • debian系统安装qt的时候 显示xcb相关文件缺失
  • Hive面试题-- 查询各类型专利 top10 申请人及专利申请数
  • ac8257 android 9 lk upgrade升级后分区表错误问题
  • Java[面试题]-真实面试2.0
  • 【NLP自然语言处理】深入探索Self-Attention:自注意力机制详解
  • 纹理分析——模型分析方法
  • 大数据-214 数据挖掘 机器学习理论 - KMeans Python 实现 算法验证 sklearn n_clusters labels
  • 【H2O2|全栈】阶段常见面试题(二)【万字大长篇】
  • Arc 浏览器快捷键一网打尽
  • 面试官:什么是雪花算法?啥原理?
  • Windows系统安装部署C++基础开发环境
  • ubuntu内核切换network unclaimed 网卡丢失
  • 河南建筑装饰工程设计专项资质办理成功案例
  • Find My电子秒表|苹果Find My技术与秒表结合,智能防丢,全球定位
  • Kaggle生物信息学挑战:酶稳定性预测大赛
  • 免费数据集网站
  • 快速上手 muduo
  • 05-如何统一管理纷繁杂乱的数据指标?
  • Bsin-kb-agent:企业级AI知识库
  • 九泰智库 | 医械周刊- Vol.68
  • 第3篇 滑动开关控制LED__ARM汇编语言工程<一>
  • Springboot 整合 Java DL4J 打造自然语言处理之语音识别系统
  • aspose如何获取PPT放映页“切换”的“持续时间”值