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 相关文章推荐
用js统计用户下载网页所需时间的脚本
Oct 15 Javascript
Extjs Ajax 乱码问题解决方案
Apr 15 Javascript
JavaScript 异步调用框架 (Part 4 - 链式调用)
Aug 04 Javascript
11款基于Javascript的文件管理器
Oct 25 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
Oct 15 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
详解Angular结合zTree异步加载节点数据
Jan 20 Javascript
Vue 中使用 CSS Modules优雅方法
Apr 09 Javascript
跟混乱的页面弹窗说再见
Apr 11 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
vue路由分文件拆分管理详解
Aug 13 Javascript
vue 扩展现有组件的操作
Aug 14 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
python增加图像对比度的方法
2019/07/12 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
管理信息系学生的自我评价
2014/01/11 职场文书
运动会入场词100字
2014/02/06 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
初中语文教学研修日志
2015/11/13 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python