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

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

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

內容概要

本文介紹一種基于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;/*菜單導航欄級背景色*/
	--bg2: #06142a;/*按鈕控件等小組件背景色*/
	--txt-color: #ffffff;
	--prominent-txt-color :#000000;
	--prominent-color :#ffffff;
}

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

3.主題樣式css變量引用

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

比如:

通過var()來引用css變量 

此時全部的前置工作已經完成。

4.設置默認主題樣式 

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

代碼如下: 

<!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部分代碼:

//當前主題
const theme=ref('dark')
//切換主題
const toggleTheme=()=>{
//獲取根元素并設置屬性
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>

效果:

點擊切換即可。

總結

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

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

相關文章

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

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

    響應系統(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導航組件問題

    vue?底部footer導航組件問題

    這篇文章主要介紹了vue?底部footer導航組件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    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中如何進行數據響應式更新

    Vue中如何進行數據響應式更新

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

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

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

    淺談父子組件傳值問題

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

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

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

最新評論

望奎县| 浮梁县| 台湾省| 洛扎县| 宣化县| 固阳县| 涿鹿县| 聂拉木县| 临桂县| 桂阳县| 安岳县| 龙陵县| 黄平县| 广安市| 明溪县| 肃北| 和田县| 恭城| 嘉禾县| 东至县| 宁强县| 莱西市| 二连浩特市| 枣强县| 桐柏县| 高安市| 互助| 卢湾区| 石渠县| 当涂县| 晋宁县| 临安市| 贵定县| 肃北| 南开区| 桑植县| 宁德市| 亳州市| 平邑县| 大方县| 屏东市|