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中设置元素class的三种方法小结
Aug 28 Javascript
js中的cookie的读写操作示例详解
Apr 17 Javascript
JavaScript中创建字典对象(dictionary)实例
Mar 31 Javascript
详解JavaScript中Date.UTC()方法的使用
Jun 12 Javascript
JavaScript代码判断点击第几个按钮
Dec 13 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
Dec 20 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
Aug 08 Javascript
vue 使用html2canvas将DOM转化为图片的方法
Sep 11 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
May 03 Javascript
JS面向对象编程实现的拖拽功能案例详解
Mar 03 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
Mar 09 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
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
2016/12/08 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
python中MySQLdb模块用法实例
2014/11/10 Python
Python中模块string.py详解
2017/03/12 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
python在不同条件下的输入与输出
2020/02/13 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
公司年会主持词
2014/03/22 职场文书
党校个人总结
2015/03/04 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
MySQL索引是啥?不懂就问
2021/07/21 MySQL
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA