最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 项目换肤方案

    正文概述 掘金(小白菜_白又白)   2021-01-15   847

    什么是换肤?

    更换页面的主题或配色,简单来讲就是更换css。

    项目实现的换肤效果是怎样的?

    1. 支持两种主题配色切换:深色和蓝绿色项目换肤方案
    2. 使用webpack生成主题
    3. 切换主题时页面不会刷新
    4. 支持多种格式,如css, less,sass(项目使用less)

    实现步骤

    1、创建主题文件夹

    themes文件夹下并列三个主题文件,将默认主题写入default.less。

    //default.js
    @import './dark.less'; //深色主题作为默认色
    

    项目换肤方案

    2、抽取变量(dark.less和green.less中的写法)

    抽取主题颜色设为'颜色变量',并赋值给'样式变量'。
    颜色变量 项目换肤方案 样式变量 项目换肤方案 注:这里要提及为什么项目要用less, 主要原因是:我们运用了大量的dpl中的组件,dpl是基于antd的,要覆盖dpl中的颜色,那么只需要知道到对应的antd中的变量,修改这个变量即可。

    // antd中的menu backgroud
    //dafault.less
    @component-background: #fff;
    @menu-bg: @component-background;
    

    真正使用样式变量:

    // portalMenu.less
    @import '/xx/xx/default.less';
    .menu-copy-right {
    	background: @menu-bg;	
     }
    

    3、安装和配置themes-switch

    安装:

    npm install themes-switch --save
    

    webpack.config.js 中的配置:

    const ThemesGeneratorPlugin = require('themes-switch/ThemesGeneratorPlugin');
    
    module.exports = {
     
      plugins: [
        new ThemesGeneratorPlugin({
          srcDir: 'src',  //代码目录
          themesDir: 'src/assets/themes', //主题目录
          outputDir: 'static/css', //生成的文件目录
          defaultStyleName: 'default.less' //默认主题文件
        })
      ]
    };
    

    ThemesGeneratorPlugin 会去扫描指定的主题目录,然后为所有主题自动生成独立的文件。下图为build/static/css中的主题文件。 项目换肤方案

    4、使用changeTheme切换主题

    import { changeTheme } from 'themes-switch';
    
    changeTheme(name, url);
    changeTheme('themes-dark', 'css/themes-dark.css');
    
    // 项目中的实现
    const THEMES = process.themes; //用来获取主题信息
    this.themeChanger = autorun(() => {
        const {theme} = sessionStore; // 每次切换主题都会更改sessionStore中的theme
        cosnt themeKey = THEME_KEYS[theme]; //constants
        if (typeof THEMES === 'object') {
          changeTheme(themeKey, THEMES[themeKey]);
        }
      });
    

    参考链接: www.npmjs.com/package/the…


    起源地下载网 » 项目换肤方案

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元