vue+iview+less 实现换肤功能


Posted in Javascript onAugust 17, 2018

项目搭建用的vue—cli,css框架选择的iview

1、首先安装less支持

npm install --save-dev less-loader less

然后去build文件夹下的webpack.base.conf.js文件中,添加对.less的支持

vue+iview+less 实现换肤功能

2、准备工作做好了,开始换肤

2.1新建一个文件夹styles,在里面新建一个文件theme.less

定义一个.theme()方法,写上需要的颜色参数如图:

vue+iview+less 实现换肤功能

2.2 styles文件夹下再新建一个存放各类主题的color.less文件,里面根据自己需求定义各类主题,记得把theme.less文件引入

@import url('./theme.less');
  .theme1{
    .theme();//默认的样式
  }
  .theme2{
    .theme(rgb(141, 139, 219),#fff,#eee,rgb(130, 126, 240));
  }
  .theme3{
    .theme(rgb(172, 214, 200),#615f5f,#fff,rgb(91, 139, 123));
  }

   2.3 在main.js中引入color.less文件

import './styles/color.less'

2.4 在进行主题选择的.vue文件中,进行如下操作

<Dropdown>
    <a href="javascript:void(0)" rel="external nofollow" >
      下拉菜单
      <Icon type="arrow-down-b"></Icon>
    </a>
    <DropdownMenu slot="list">
      <DropdownItem @click.native="changeColor(1)">摇滚主题</DropdownItem>
      <DropdownItem @click.native="changeColor(2)">新时代主题</DropdownItem>
      <DropdownItem @click.native="changeColor(3)">基础主题</DropdownItem>
    </DropdownMenu>
  </Dropdown>
   //更换主题
   changeColor(num){
    //把className theme1,theme2,theme3挂载在app.vue的<div id="app"></div>上
    document.getElementById('app').className ='theme'+num ;
    this.localStorageDate()
   },
   //存储localStoarge,用于进入系统时,记住用户上一次的选择,自动加载用户上一次选择的主题主题,记得在mounted()里面调用
   localStorageDate(){
    localStorage.setItem('app',document.getElementById('app').className)
   }

总结

以上所述是小编给大家介绍的vue+iview+less 实现换肤功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Extjs单独定义各组件的实例代码
Jun 25 Javascript
购物车选中得到价格实现示例
Jan 26 Javascript
jquery滚动特效集锦
Jun 03 Javascript
JavaScript jquery及AJAX小结
Jan 24 Javascript
关于js中的鼠标事件总结
Jul 11 Javascript
input输入框内容实时监测(附代码)
Aug 15 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
Nov 09 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
JS前端广告拦截实现原理解析
Feb 17 Javascript
vue 二维码长按保存和复制内容操作
Sep 22 Javascript
vue监听键盘事件的相关总结
Jan 29 Vue.js
详解JavaScript中的执行上下文及调用堆栈
Apr 29 Javascript
jquery实现的简单轮播图功能【适合新手】
Aug 17 #jQuery
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
Aug 17 #Javascript
vue实现element-ui对话框可拖拽功能
Aug 17 #Javascript
原生JS实现的简单轮播图功能【适合新手】
Aug 17 #Javascript
layer.confirm取消按钮绑定事件的方法
Aug 17 #Javascript
LayerClose弹窗关闭刷新方法
Aug 17 #Javascript
详解vue移动端项目的适配(以mint-ui为例)
Aug 17 #Javascript
You might like
php 抽象类的简单应用
2011/09/06 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
php代码架构的八点注意事项
2016/01/25 PHP
php图片上传类 附调用方法
2016/05/15 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
vue项目接口域名动态获取操作
2020/08/13 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
对python list 遍历删除的正确方法详解
2018/06/29 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
日本无添加化妆品:HABA
2016/08/18 全球购物
吸烟检讨书2000字
2014/02/13 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
交通安全标语
2014/06/06 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
义诊活动通知
2015/04/24 职场文书
2015年采购员工作总结
2015/04/27 职场文书
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle
Golang解析JSON对象
2022/04/30 Golang