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

js替换css主题变量并切换iconfont文件

iconfont不止有单色、双色的图标,还有很多【多色】的图标,于是不能【去色】,只能手动替换primary

新建一个iconfont,替换过主题色的,然后与旧的iconfont配合切换使用

主要如下:

reqiure之前必须【清除缓存】,否则无法生效,require加载机制如上图所示

const onChangeYellow = (index) => {
  if (appPrimary.value === "yellow") {
	// 重新设置主题色
    document
      .getElementsByClassName("skin-variant--semi-dark")[0]
      .style.setProperty("--v-primary-base", "#EDE20B");
    document
      .getElementsByClassName("v-main")[0]
      .style.setProperty("--v-primary-base", "#323232");

    vm.$vuetify.theme.themes.dark.primary = "#323232";

    // document.getElementsByTagName('html')[0].className = appPrimary.value
    document.documentElement.className = appPrimary.value;
	
	// 清除缓存
    delete require.cache[require.resolve("@/assets/yellow-iconfont/iconfont")];
    delete require.cache[
      require.resolve("@/assets/yellow-iconfont/iconfont.css")
    ];

	// 引入新的iconfont文件
    require("@/assets/yellow-iconfont/iconfont");
    require("@/assets/yellow-iconfont/iconfont.css");
  } else {
    document
      .getElementsByClassName("skin-variant--semi-dark")[0]
      .style.removeProperty("--v-primary-base");
    document
      .getElementsByClassName("v-main")[0]
      .style.removeProperty("--v-primary-base");

    // document.getElementsByTagName('html')[0].className = ''
    document.documentElement.className = "";

    // document.getElementsByClassName('yellow-iconfont')[0].remove()

    delete require.cache[require.resolve("@/assets/iconfont/iconfont")];
    delete require.cache[require.resolve("@/assets/iconfont/iconfont.css")];

    require("@/assets/iconfont/iconfont");
    require("@/assets/iconfont/iconfont.css");
  }
};


http://www.kler.cn/news/325396.html

相关文章:

  • uniapp中h5环境添加console.log输出
  • 2024年7月大众点评沈阳美食店铺基础信息
  • 数据结构和算法之树形结构(4)
  • springframework Ordered接口学习
  • BOE(京东方)携故宫博物院举办2024“照亮成长路”公益项目落地仪式以创新科技赋能教育可持续发展
  • 计算机网络--TCP、UDP抓包分析实验
  • 2024年配置YOLOX运行环境+windows+pycharm24.0.1+GPU
  • [C语言]--自定义类型: 结构体
  • 【C/C++】错题记录(一)
  • pdf页面尺寸裁减
  • uni-app+vue3开发微信小程序使用本地图片渲染不出来报错[渲染层网络层错误]Failed to load local image resource
  • 黑马智数Day2
  • Python pyusb 使用指南【windows+linux】
  • 基于单片机的无线宠物自动喂食系统设计
  • 大数据复习知识点3
  • Python线程终止:如何优雅地结束一场“舞蹈”
  • Mybatis缓存机制(图文并茂!)
  • YOLOv8改进 | 融合篇,YOLOv8主干网络替换为MobileNetV4+CA注意机制+Powerful-IoU损失函数(全网独家首发,实现极限涨点)
  • 力扣刷题之1014.最佳观光组合
  • RK3588主板PCB设计学习(五)
  • CRC循环校验的功能
  • 串行化执行、并行化执行
  • 算法记录——树
  • 学生宿舍管理:Spring Boot技术驱动
  • React 中的无限滚动加载数据实现
  • 探索 JUnit 5:下一代 Java 测试框架
  • Android PopupWindow.showAsDropDown报错:BadTokenException: Unable to add window
  • 【设计模式-访问者模式】
  • vue项目报错: At least one is required in a single file component.的主要原因及解决办法
  • MySQL 左右连接