最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3快速實現(xiàn)主題切換功能的步驟詳解

 更新時間:2024年06月04日 10:57:09   作者:蒾酒  
本文介紹一種基于css變量的主題切換實現(xiàn)方式,這種是最簡單,最直接,最容易理解的方式,實現(xiàn)的原理就是定義不同的HTML根標簽元素的樣式,通過data屬性來區(qū)分不同主題css變量樣式,感興趣的朋友可以參考下

內(nèi)容概要

本文介紹一種基于css變量的主題切換實現(xiàn)方式,這種是最簡單,最直接,最容易理解的方式。

實現(xiàn)的原理就是定義不同的HTML根標簽元素的樣式,通過data屬性來區(qū)分不同主題css變量樣式,通過修改根元素的data屬性值來加載不同的css變量,實現(xiàn)主題切換。

實現(xiàn)步驟

1.定義不同主題的css樣式變量

一般把該css文件放在styles目錄下的theme.css里面

代碼如下:

/* 淺色色主題 */
html[data-theme="light"]{
	--page-bg: #ecf4fd;
	--bg1: #ffffff;
	--bg2: #ffffff;
	--txt-color: #000000;
	--prominent-txt-color :#ffffff;
	--prominent-color :#000000;
}
/* 暗色主題 */
html[data-theme="dark"]{
	--page-bg: #06142a;/*頁面級背景色*/
	--bg1: #06142a;/*菜單導(dǎo)航欄級背景色*/
	--bg2: #06142a;/*按鈕控件等小組件背景色*/
	--txt-color: #ffffff;
	--prominent-txt-color :#000000;
	--prominent-color :#ffffff;
}

2.入口main.ts中引入這個樣式文件

3.主題樣式css變量引用

在頁面各種根據(jù)主題變化的地方,如頁面背景色,導(dǎo)航欄背景色,文字顏色等引用這些css變量

比如:

通過var()來引用css變量 

此時全部的前置工作已經(jīng)完成。

4.設(shè)置默認主題樣式 

在index.html設(shè)置默認樣式。如圖設(shè)置的是深色主題

代碼如下: 

<!DOCTYPE html>
<html lang="en" data-theme="dark">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/favicon.ico" rel="external nofollow" >
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>我的工具箱</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>

此時你的頁面就變成深色主題了。

5.實現(xiàn)點擊按鈕主題切換

準備一個主題切換按鈕

js部分代碼:

//當(dāng)前主題
const theme=ref('dark')
//切換主題
const toggleTheme=()=>{
//獲取根元素并設(shè)置屬性
document.documentElement.setAttribute('data-theme',theme.value=='dark'?'light':'dark')
theme.value=theme.value=='dark'?'light':'dark'
}

html部分:

 <div class="theme" @click="toggleTheme()">
            <div class="theme-img">
                <a href="#" rel="external nofollow" >
                   
                    <div v-if="theme==='light'">
                        <img src="../../assets/月亮 .png" alt="">
                    </div>
                    <div v-if="theme==='dark'">
                      
                        <img src="../../assets/太陽.png" alt="">
                    </div>
                    
                </a>
            </div>
        </div>

效果:

點擊切換即可。

總結(jié)

這種實現(xiàn)主題切換的原理就是通過 HTML 的 data 屬性和 CSS 變量來動態(tài)改變頁面的樣式,從而實現(xiàn)不同主題下的樣式切換。當(dāng)用戶切換主題時,只需改變 HTML 標簽上的 data 屬性的值,頁面的樣式會自動更新為對應(yīng)主題下的樣式。 

以上就是vue3快速實現(xiàn)主題切換功能的步驟詳解的詳細內(nèi)容,更多關(guān)于vue3主題切換的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 用Vue.js實現(xiàn)監(jiān)聽屬性的變化

    用Vue.js實現(xiàn)監(jiān)聽屬性的變化

    響應(yīng)系統(tǒng)是Vue.js的一個顯著功能,修改屬性,可以更新視圖,這讓狀態(tài)管理變得非常簡單且直觀。這篇文章主要給大家介紹如何利用Vue.js實現(xiàn)觀察屬性的變化,有需要的朋友們可以參考借鑒,感興趣的朋友們下面來一起看看吧。
    2016-11-11
  • vue 避免變量賦值后雙向綁定的操作

    vue 避免變量賦值后雙向綁定的操作

    這篇文章主要介紹了vue 避免變量賦值后雙向綁定的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 詳解vue-cli腳手架中webpack配置方法

    詳解vue-cli腳手架中webpack配置方法

    這篇文章主要介紹了詳解vue-cli腳手架中webpack配置方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • vue?底部footer導(dǎo)航組件問題

    vue?底部footer導(dǎo)航組件問題

    這篇文章主要介紹了vue?底部footer導(dǎo)航組件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue?cli使用iview自定義主題遇到的坑及解決

    vue?cli使用iview自定義主題遇到的坑及解決

    vue?cli使用iview自定義主題遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 解析Vue.js中的組件

    解析Vue.js中的組件

    組件(Component)是 Vue.js 最強大的功能之一。組件可以擴展 HTML 元素,封裝可重用的代碼。這篇文章主要介紹了vue.js 中的組件,需要的朋友參考下
    2018-02-02
  • Vue中如何進行數(shù)據(jù)響應(yīng)式更新

    Vue中如何進行數(shù)據(jù)響應(yīng)式更新

    Vue是一款流行的JavaScript框架,它提供了數(shù)據(jù)響應(yīng)式更新的能力,可以讓我們輕松地更新數(shù)據(jù),并自動更新視圖,本文將介紹Vue中如何進行數(shù)據(jù)響應(yīng)式更新,包括使用Vue的響應(yīng)式系統(tǒng)、使用計算屬性和使用Vue的watcher,需要的朋友可以參考下
    2023-06-06
  • vue3中echarts的tooltip組件不顯示問題及解決

    vue3中echarts的tooltip組件不顯示問題及解決

    這篇文章主要介紹了vue3中echarts的tooltip組件不顯示問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 淺談父子組件傳值問題

    淺談父子組件傳值問題

    這篇文章主要介紹了Vue父子組件傳值問題,文章中有詳細的示例代碼,感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • vue實現(xiàn)文件流形式的導(dǎo)出下載全過程

    vue實現(xiàn)文件流形式的導(dǎo)出下載全過程

    Vue項目中下載返回的文件流操作包括:使用Axios請求文件流數(shù)據(jù)、設(shè)置響應(yīng)類型為'blob'、創(chuàng)建下載鏈接并觸發(fā)下載,關(guān)鍵步驟是使用Blob對象和URL.createObjectURL生成下載鏈接
    2025-12-12

最新評論

大关县| 林西县| 东平县| 清水县| 山阴县| 盘锦市| 江山市| 阿克陶县| 彝良县| 犍为县| 忻州市| 西乌珠穆沁旗| 宜都市| 连城县| 西吉县| 藁城市| 卫辉市| 濮阳县| 阜新市| 老河口市| 五河县| 山东| 吉林市| 莫力| 沁阳市| 三原县| 西乌珠穆沁旗| 文化| 衡南县| 临西县| 隆化县| 古交市| 辽宁省| 东港市| 大冶市| 宜兰市| 巩义市| 顺昌县| 上饶县| 科技| 平安县|