前端项目一键换肤vue+element(ColorPicker)

简介: 本文介绍了如何在前端项目中实现一键换肤功能,通过使用CSS变量和Element UI的颜色选择器组件(ColorPicker),并结合Vuex进行状态管理和持久化,实现主题颜色的动态切换。

前端项目一键换肤

1.需要配色的都是用变量声明
2.增加颜色选择器
3.改变颜色,更改初始值

在这里插入图片描述
在这里插入图片描述

1.需要配色的都是用变量声明

/* 全局样式 */
body {
   
    // 无需改变
    --light_color_aside: #f6f6f6;
    // 主题色
    --light_colourt: #E60027;
    --theme_color: #EC5E59;
    --light_color_btn: #F9D8D8;
    --light_colour: #EBDAD9;
    --light_color_hover: #FFF2F0; 
}

在main.js中引入即可,在其他需要使用的地方

.u__title {
   
   background-color: var(--light_color_aside) !important;
 }

2.增加颜色选择器
使用了element中的颜色选择器ColorPicker组件

    <div class="changeTheme"  title="一键换肤">
      <div class="changeThemeChild">
        <el-color-picker
          color-format="rgb"
          v-model="CurrentColorpicker"
          size="mini"
          :predefine="predefineColors"
          @change="colorActiveChange"
        ></el-color-picker>
      </div>
    </div>

3.改变颜色,更改初始值
data:

  data() {
   
    return {
   
      CurrentColorpicker: '',
      predefineColors: ['#E60027', '#409eff', '#00288a', 'rgb(29, 30, 31)'],
    };
  },

获取颜色默认值,在vuex中存储,vuex做了持久化,不会丢失,当然只针对本次登录,没有走接口保存在数据库

  computed: {
   
    ...mapState({
   
      colorpicker: (state) => state.home.colorpicker,
    }),
  },

页面初始化

created() {
   
    this.colorActiveChange(this.colorpicker)
}

方法

import {
    mapState, mapMutations } from "vuex";
  methods: {
   
    colorActiveChange(light_colourt) {
   
      this.CurrentColorpicker = light_colourt
      //更新vuex中的值
      this["home/setColorpicker"](light_colourt)
      if (light_colourt === 'rgb(230, 0, 39)') {
   
        // 红色主题
        document.body.style.setProperty(`--light_colourt`, '#E60027');
        document.body.style.setProperty(`--theme_color`, '#EC5E59');
        document.body.style.setProperty(`--light_color_btn`, "#F9D8D8");
        document.body.style.setProperty(`--light_colour`, "#EBDAD9");
        document.body.style.setProperty(`--light_color_hover`, "#FFF2F0");
        return false
      }
      // rgb(94, 36, 36)
      const theme_color = light_colourt.replace(')', ',.8)')
      const light_color_btn = light_colourt.replace(')', ',.15)')
      const light_colour = light_colourt.replace(')', ',.12)')
      const light_color_hover = light_colourt.replace(')', ',0.02)')
      document.body.style.setProperty(`--light_colourt`, light_colourt);
      document.body.style.setProperty(`--theme_color`, theme_color);
      document.body.style.setProperty(`--light_color_btn`, light_color_btn);
      document.body.style.setProperty(`--light_colour`, light_colour);
      document.body.style.setProperty(`--light_color_hover`, light_color_hover);
    },
    ...mapMutations(["home/setColorpicker"]),
 }

在这里插入图片描述
在这里插入图片描述

目录
相关文章
|
13天前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
8天前
|
机器学习/深度学习 数据采集 JavaScript
ADR智能监测系统源码,系统采用Java开发,基于SpringBoot框架,前端使用Vue,可自动预警药品不良反应
ADR药品不良反应监测系统是一款智能化工具,用于监测和分析药品不良反应。该系统通过收集和分析病历、处方及实验室数据,快速识别潜在不良反应,提升用药安全性。系统采用Java开发,基于SpringBoot框架,前端使用Vue,具备数据采集、清洗、分析等功能模块,并能生成监测报告辅助医务人员决策。通过集成多种数据源并运用机器学习算法,系统可自动预警药品不良反应,有效减少药害事故,保障公众健康。
ADR智能监测系统源码,系统采用Java开发,基于SpringBoot框架,前端使用Vue,可自动预警药品不良反应
|
18天前
|
JavaScript 前端开发
【前端web入门第一天】03 综合案例 个人简介与vue简介
该网页采用“从上到下,先整体再局部”的制作思路,逐步分析并编写代码实现个人简介页面。内容涵盖尤雨溪的背景、学习经历及主要成就,同时介绍其开发的Vue.js框架特点。代码结构清晰,注重细节处理,如使用快捷键提高效率,预留超链接位置等,确保最终效果符合预期。
|
14天前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
31 3
|
13天前
|
JavaScript 前端开发 API
如何在前端开发中有效管理状态:React vs. Vue
在现代前端开发中,状态管理是一个关键因素,它直接影响到应用的性能和可维护性。React 和 Vue 是当前最流行的前端框架,它们在状态管理方面各有优势和劣势。本文将深入探讨 React 和 Vue 在状态管理中的不同实现,分析它们的优缺点,并提供实际应用中的最佳实践,以帮助开发者选择最适合他们项目的解决方案。
|
1月前
|
JavaScript 前端开发 Java
SpringBoot + Vue 前端后分离项目精进版本
这篇文章详细介绍了一个基于SpringBoot + Vue的前后端分离项目的搭建过程,包括前端Vue项目的初始化、依赖安装、页面创建和路由配置,以及后端SpringBoot项目的依赖添加、配置文件修改、代码实现和跨域问题的解决,最后展示了项目运行效果。
SpringBoot + Vue 前端后分离项目精进版本
|
26天前
|
前端开发 Java Spring
Spring与Angular/React/Vue:当后端大佬遇上前端三杰,会擦出怎样的火花?一场技术的盛宴,你准备好了吗?
【8月更文挑战第31天】Spring框架与Angular、React、Vue等前端框架的集成是现代Web应用开发的核心。通过RESTful API、WebSocket及GraphQL等方式,Spring能与前端框架高效互动,提供快速且功能丰富的应用。RESTful API简单有效,适用于基本数据交互;WebSocket支持实时通信,适合聊天应用和数据监控;GraphQL则提供更精确的数据查询能力。开发者可根据需求选择合适的集成方式,提升用户体验和应用功能。
61 0
|
26天前
|
开发者 C# Android开发
明白吗?Xamarin与Native的终极对决:究竟哪种开发方式更适合您的项目需求,让我们一探究竟!
【8月更文挑战第31天】随着移动应用开发的普及,开发者面临多种技术选择。本文对比了跨平台解决方案Xamarin与原生开发方式的优势与劣势。Xamarin使用C#进行跨平台开发,代码复用率高,可大幅降低开发成本;但因基于抽象层,可能影响性能。原生开发则充分利用平台特性,提供最佳用户体验,但需维护多套代码库,增加工作量。开发者应根据项目需求、团队技能和预算综合考量,选择最适合的开发方式。
64 0
|
28天前
|
JavaScript 前端开发 测试技术
Vue.js开发者必看!Vue Test Utils携手端到端测试,打造无懈可击的应用体验,引领前端测试新风尚!
【8月更文挑战第30天】随着Vue.js的普及,构建可靠的Vue应用至关重要。测试不仅能确保应用质量,还能提升开发效率。Vue Test Utils作为官方测试库,方便进行单元测试,而结合端到端(E2E)测试,则能构建全面的测试体系,保障应用稳定性。本文将带你深入了解如何使用Vue Test Utils进行单元测试,通过具体示例展示如何测试组件行为;并通过Cypress进行E2E测试,确保整个应用流程的正确性。无论是单元测试还是E2E测试,都能显著提高Vue应用的质量,让你更加自信地交付高质量的应用。
42 0
|
28天前
|
JavaScript 前端开发 开发者
决战前端之巅!Element UI与Vuetify谁才是Vue.js组件界的霸主?一场关于颜值与实力的较量!
【8月更文挑战第30天】本文对比了两款热门的Vue.js组件库——Element UI与Vuetify。Element UI由饿了么团队打造,提供多种高质量UI组件,设计简洁大方。Vuetify基于Material Design规范,支持Vue.js 2.0及3.0版本,具备前瞻性。两者均涵盖表单、导航、数据展示等组件,Element UI配置选项丰富,而Vuetify则提供了更深层的样式定制功能。开发者可根据项目需求及个人偏好选择合适的组件库。
80 0