Vue进阶(幺捌伍):动态设置系统字体_微信字体动态设置大小vue怎么监听

打开全栈工匠技能包-1小时轻松掌握SSR

两小时精通jq+bs插件开发

生产环境下如歌部署Node.js

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

网易内部VUE自定义插件库NPM集成

谁说前端不用懂安全,XSS跨站脚本的危害

webpack的loader到底是什么样的?两小时带你写一个自己loader

一、前言

在项目优化过程中,实现了主体色替换功能,接下来考虑实现系统字体设置,主要提供3种字体大小供用户选择。

二、实现思路

<el-dropdown-menu style="color: #20a0ff" slot="dropdown">
    <!--切换主题色-->
    <el-dropdown-item divided style="display: flex; justify-content: space-around; width: 220px; padding-top: 10px;">
        主题色:
        <change-color></change-color>
      <!--系统默认主题色-->
      <el-button type="text" @click="resetSysColor" style="color: #409eff;">重置</el-button>
    </el-dropdown-item>
    <el-dropdown-item divided style="display: flex; justify-content: space-around; width: 240px; padding-top: 10px; margin-left: 33px;">
      系统字体:
      <el-radio-group v-model="sysFontSize" size="small" style="padding-left: 8px;" @change="changeSysConfig">
        <el-radio-button :label="1">小</el-radio-button>
        <el-radio-button :label="2">中</el-radio-button>
        <el-radio-button :label="3">大</el-radio-button>
      </el-radio-group>
      <!--系统默认字体-->
      <el-button type="text" @click="resetSysFont" style="padding-left: 8px; color: #409eff;">重置</el-button>
    </el-dropdown-item>
  </el-dropdown-menu>

import { mapGetters } from 'vuex'
import appConfig from '../../../config/app-config.js'

export default {
data () {
	return {
		sysFontSize: '' // 系统字体
	}
},
computed: {
	...mapGetters(['sysFont'])
},
watch: {
	sysFont (newVal) {
		document.querySelector('html').style.fontSize = this.sysFont+ 'px'
		switch (this.sysFont) {
		  case '12':
		    this.sysFontSize = 1
		    break
		  case '14':
		    this.sysFontSize = 2
		    break
		  case '16':
		    this.sysFontSize = 3
		    break
		}
	}
},
// 重置系统主题色
resetSysColor () {
	sessionStorage.removeItem('theme_color')
	this.changeSysConfig()
	location.reload()
},
// 重置系统字体
resetSysFont () {
	sessionStorage.removeItem('theme_font')
	this.sysFontSize = appConfig.themeFontSize
	this.changeSysConfig(appConfig.themeFontSize)
},
// 更新系统主题色
changeSysConfig (val) {
	let fontSize = 0
	switch (val) {
	  case 1:
	    fontSize = '12'
	    break
	  case 2:
	    fontSize = '14'
	    break
	  case 3:
	    fontSize = '16'
	    break
	}
	document.querySelector('html').style.fontSize = fontSize + 'px'
	let data = {
	  syscolor: curColor,
	  sysfont: fontSize
	}
	// 每次开关状态更改,保存开关状态
	updateSysConfig(JSON.stringify(data)).then((response) => {
	  changeThemeColor(curColor)
	  sessionStorage.setItem('theme_font', fontSize)
	})
}

三、涉及知识点

  • 动态设置html根字体大小
document.querySelector('html').style.fontSize = fontSize + 'px'

  • 若适配不同屏幕(随着设备屏幕的大小而变化,从而实现响应式),建议采用以下逻辑:

打开全栈工匠技能包-1小时轻松掌握SSR

两小时精通jq+bs插件开发

生产环境下如歌部署Node.js

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

网易内部VUE自定义插件库NPM集成

谁说前端不用懂安全,XSS跨站脚本的危害

webpack的loader到底是什么样的?两小时带你写一个自己loader

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!'net::ERR_FILE_NOT_FOUND' 错误通常表示在Vue应用中无法找到指定的图片文件。这可能是由于以下原因之一引起的: 1. 图片路径错误:请确保您在Vue组件中正确指定了图片的路径。路径应该是相对于您的Vue项目的根目录或者相对于当前Vue组件文件的路径。如果图片位于不同的文件夹下,您需要相应地调整路径。 2. 图片文件不存在:请检查您指定的图片文件是否存在于指定的路径中。确保文件名和扩展名正确,并且文件确实存在于该位置。 3. 静态资源配置错误:在Vue项目中,您可以使用Vue的静态资源处理功能来加载图片。请确保您已经正确配置了静态资源加载。通常,您需要在vue.config.js或者webpack配置中指定静态资源文件夹的路径。 以下是一个示例代码片段,演示了如何在Vue组件中正确加载图片: ```vue <template> <div> <img :src="getImagePath(imageName)" alt="My Image"> </div> </template> <script> export default { data() { return { imageName: 'my-image.jpg' // 图片文件名 } }, methods: { getImagePath(imageName) { // 返回图片的完整路径 return require('@/assets/images/' + imageName); } } } </script> <style> /* 样式表 */ </style> ``` 在这个示例中,我们使用了动态绑定(:src)来设置图片的路径。在方法`getImagePath`中,我们使用了require函数来获取图片的完整路径。请确保您将图片文件放置在正确的文件夹中,并根据需要调整路径。 希望这个回答对您有所帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值