PC端專案的暗黑和正常主題的切換設定

2021-10-12 12:39:18 字數 2288 閱讀 5405

打個比方,最近有個節日,老闆想讓線上的系統有乙個暗黑主題色,但是節日過後還需要變回原來的背景色,這個時候我們就需要考錄到讓暗黑主題色和正常主題色都存在,由此不僅省去了軟體的多次修改,也讓軟體多了層特效。廢話不多說,拉起柚子開始絮叨絮叨如何實現的

對於實現全域性背景色加字型的切換肯定少不了外掛程式:yarn add sass-resources-loader
二、在assets檔案中引入scss檔案,其中包含theme-mixin.scss、theme-var.scss兩個檔案

1.首先在theme-mixin.scss檔案中定義字型顏色和背景顏色的方法

/* --------------------------------設定字型顏色---------------------- */

@mixin font_color(

$font_color_black, //黑色主題時字型顏色

$font_color_white, //白色主題時字型顏色

$font_weight_black: normal, //是否需要加粗

$font_weight_white: normal //是否需要加粗

) "] &

// 主題為白色時的字型顏色

[data-theme="#"] &

} /* ----------------------------------設定字型顏色------------------- */

/* --------------------------------設定背景顏色---------------------- */

@mixin bg_color($bg_color_black, $bg_color_white) "] &

// 主題為白色時的背景顏色

[data-theme="#"] &

} /* ----------------------------------設定背景顏色------------------- */

/* --------------------------------自定義設定屬性---------------------- */

//第乙個為屬性值,第二個為黑色主題時的顏色,第三個引數為白色主題時的引數,最後乙個引數為接受不確定的引數個數,類似於reset引數

@mixin setattribute($attribute, $bg_color_black, $bg_color_white, $value...) "] & : $bg_color_black $value; //#{}為插值語法解析成字串 多用在屬性值以及選擇器上比如#-right: 1px solid #fff;

}// 主題為白色時的背景顏色

[data-theme="#"] & : $bg_color_white $value;

}}2.在theme-var.scss檔案中設定按鈕切換時的屬性值

// 主題風格list

$theme-black: 'black';

$theme-white: 'white';

$theme-list: 'black', 'white';

三、在vue.config.js中引入定義的模組

定義結果如下:

chainwebpack: config => )

.end();

});}

四、在store->modules->common.js中引入

state:	theme: localstorage.getitem('data-theme') ?? 'black'

mutations:

[types.change_theme](state, param)

五、在store->mutation-types.js中註冊

// 更改主題

export const change_theme = 'change_theme';

六、在home元件引入

import  from 'vuex';

computed: ,

watch: ,

immediate: true

}},

七、在元件中使用

@include font_color() =>修改字型顏色

@include bg_color() => 修改背景顏色

如何在專案PC端和手機端使用的rem,怎麼設定

做乙個pc端的網頁,設計圖是1920x1080的.要在常見屏上顯示正常 比例正確可 1280x720 1366x768 1440x900 1920x1080 使用了幾種辦法 1.內容在一屏內顯示的,採用了 內容框 上下左右居中的辦法,裡面的內容絕對於這個內容框定位.這樣一來,在不同大小屏中,內容總是...

vue專案移動端 pc端適配方案

vue專案移動端 pc端適配方案 npm i lib flexible s npm i postcss px2rem s簡要介紹這兩個包的用途 flexible會為頁面根據螢幕自動新增標籤,動態控制initial scale,maximum scale,minimum scale等屬性的值。post...

vue專案移動端 pc端適配方案

vue專案移動端 pc端適配方案 npm i lib flexible s npm i postcss px2rem s簡要介紹這兩個包的用途 flexible會為頁面根據螢幕自動新增標籤,動態控制initial scale,maximum scale,minimum scale等屬性的值。post...