vue实现element-ui自定义主题色切换(简单版)

需求:通过点击图标实现了白天和黑夜的页面效果的实现,可以自定义颜色,手写,比较简单,如果需要复杂功能,根据颜色选择器实现element-ui全部的主题色切换可以看我另一篇:还在写

效果:

 1.定义个图标用于切换主题

 <!-- 切换主题 -->
          <div @click="handleChangeStyle()">
            <el-tooltip content="切换主题" placement="bottom">
              <i :class="globalTheme ? 'el-icon-moon' : 'el-icon-sunny'"></i>
            </el-tooltip>
          </div>

2.定义个全局总线,用于数据的输出和输入

在main.js加上这句话就行了

Vue.prototype.$bus=new Vue();

3.点击图标后传入数据

 this.globalTheme:默认是false

     handleChangeStyle() {
            // 切换主题
            this.globalTheme = !this.globalTheme;
           this.$bus.$emit('global_theme', this.globalTheme); // 将 globalTheme 的值传给父组件
        }

4.app.vue中编写

<template>
  <div id="app" :class="style ? 'theme1' : ''">
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  data(){
    return{
      style: false
    }
  },
  created(){
    this.$bus.$on('global_theme', (msg) => {    // 接收子组件传来 global_theme 的值
      this.style = msg;
    });
  }
}
</script>

5.创建theme.scss

这里面就是你自定义的颜色,把他导入在main.js中完成

.theme1{
  /* 将自己想要换肤后变化的样式写入该处,根据自己的需要进行修改和添加 */
  .sidebar-el-menu:not(.el-menu--collapse) {
    background: #012d4b !important;
  }
  .sidebar > ul {
    background: #012d4b !important;
  }
  /* 左侧菜单栏样式 */
  .el-menu-item{
    color: white !important;    /* 默认 black */
    background: #012d4b !important;
  }
  .el-menu-item, .el-submenu__title {
    background: #012d4b !important;
  }
  
  /* 页面顶部的样式 */
  .header {
    /* background-image:url("../../assets/img/main-bg1-top.jpg");
    background-repeat:no-repeat;
    background-size:100% 200%; */
    background-color: #001d30 !important;
    color: white !important;
  }
  .el-dropdown-link {
    color: white !important;
  }
  
  /* --------------- 水平一级菜单栏的样式--------------------- */
  .el-menu--horizontal > .el-menu-item.is-active {
    border-bottom: 2px solid #7FFFD4 !important;    /* 默认 blue */
    color: #7FFFD4 !important;    /* 默认 blue */
  }
  .el-menu--horizontal > .el-menu-item {
    background: transparent !important;
    color: white !important;    /* 默认 black */
  }
  .el-menu--horizontal > .el-menu-item:hover {
    background: transparent !important;
    color: white !important;
  }
  
  /* 消息按钮颜色样式 */
  .el-icon-bell{
    color: white;
  }
  .el-icon-caret-bottom{
    color: white;
  }
}

文章到此结束,希望对你有所帮助~~

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue Element Admin是一个基于Vue.jsElement UI的后台管理系统框架。它提供了一个现代化的UI界面,支持灵活的布局和组件,可以快速定制和集成不同的插件和功能模块,适用于各种类型的企业级应用程序。Vue Element Admin还提供了许多有用的功能,如动态路由,权限管理,多语言支持等,可以大大提高开发效率和用户体验。如果你需要一个功能强大,易于使用的后台管理框架,Vue Element Admin是一个不错的选择。 ### 回答2: vue-element-admin是一个基于Vue.jsElement UI的开源框架,用于构建企业级的管理后台系统。它提供了丰富的功能组件和强大的扩展性,可以快速搭建起一个功能完善、美观大气的管理系统。 首先,vue-element-admin框架采用了Vue.js作为前端开发的基础框架,Vue.js具有简单、灵活和高效的特点,能够让开发者快速上手并进行快速开发。而Element UI则是一个基于Vue.jsUI组件库,提供了丰富的组件和样式,使得界面设计简单而美观。 其次,vue-element-admin框架内置了许多常用的功能组件,如表格、表单、图表等,这些组件完善了管理系统的基本功能,开发者可以直接调用这些组件,省去了自己编写这些组件的麻烦。同时,vue-element-admin还支持动态路由和权限控制,可以根据用户的权限动态生成路由和菜单,实现灵活的权限管理。 另外,vue-element-admin框架具有很好的扩展性,开发者可以根据自己的需求对框架进行定制和扩展,包括添加自定义的组件、修改现有组件等。而且,该框架支持国际化,能够适应不同语言和文化的需求,使得项目能够面向全球用户。 总之,vue-element-admin框架是一个功能强大、易于使用的开源框架,能够帮助开发者快速构建出高效、美观的企业级管理后台系统。无论是小型项目还是大型项目,都能够得到较好的支持和满足。 ### 回答3: vue-element-admin是一个基于Vue.jsElement UI的开源后台管理系统框架。它提供了一套完整的解决方案,用于快速构建现代化的后台管理系统。该框架具有丰富的功能和灵活的扩展性。 首先,vue-element-admin框架基于Vue.jsElement UI,这意味着我们可以充分利用Vue.js的响应式特性、组件化开发和虚拟DOM等优势,快速构建可维护、高性能的前端应用程序。同时,Element UI提供了丰富的UI组件和样式,使我们能够轻松地构建用户友好的界面。 其次,vue-element-admin框架提供了一套完整的后台管理系统解决方案。它包括登录、权限控制、菜单导航、数据展示和编辑等常见功能,以及用户管理、角管理、系统设置等高级功能。我们只需要按照规范进行配置和开发,就能够快速搭建出一个功能完善的后台管理系统。 此外,vue-element-admin框架还具有灵活的扩展性。我们可以根据项目需求进行定制化开发,添加新的功能模块或修改已有模块。同时,该框架支持国际化和多主题切换,方便适应不同地区和用户的需求。 总的来说,vue-element-admin框架是一个强大而易用的后台管理系统框架,它能够帮助开发者快速构建出现代化的用户界面和功能丰富的后台管理系统。无论是小型项目还是大型企业级应用,都能够从该框架中受益。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值