vue3实现主题切换功能
本文使用的技术主要包括 vue3+vite+scss
1.配置全局scss变量
首先在src目录下创建styles文件夹,并新建common.scss文件,内容如下:
// 文字颜色
$fontColor: var(--font-color, #333);
// 盒子背景
$boxBgColor: var(--bg-color, #ccc);
修改vite.config.ts文件,引入全局scss文件,内容如下:
export default defineConfig({plugins: [vue()],resolve: {alias: {'@': path.resolve(__dirname, './src'),'components': path.resolve(__dirname, './src/components'),}},css: {preprocessorOptions: {scss: {additionalData: `@import '@/styles/common.scss';` // 引入全局变量文件}}}
})
2.主题控制方法
在src下的hooks文件夹下,新建 changeColor.ts 文件,内容如下:
// 修改主题
import { ref } from 'vue';
const useThem = () => {const isDarkThem = ref(false); // 是否是暗黑主题// 主题切换const changeThem = () => {if (isDarkThem.value) {document.getElementsByTagName('body')[0].style.setProperty('--font-color', '#fff');document.getElementsByTagName('body')[0].style.setProperty('--bg-color', '#000');} else {document.getElementsByTagName('body')[0].style.setProperty('--font-color', '#333');document.getElementsByTagName('body')[0].style.setProperty('--bg-color', '#ccc');}}return { isDarkThem, changeThem }
}export { useThem };
3.页面使用
引入主题控制方法,使用按钮进行主题切换,内容如下:
<template><div class="testPage"><div class="box"><span>测试文字</span></div><el-switch v-model="isDarkThem" class="mb-2" active-text="黑夜" inactive-text="白天" @change="changeThem" /></div>
</template>
<script setup lang="ts">
import { useThem } from '@/hooks/changeColor'
const { isDarkThem, changeThem } = useThem();</script>
<style scoped lang="scss">
.box {background-color: $boxBgColor; // 全局变量width: 200px;height: 200px;margin: 0 auto 20px;line-height: 200px;text-align: center;span {color: $fontColor; // 全局变量}
}
</style>
4.效果展示:
展示切换开关的效果,实现主题切换功能
vue3实现主题切换功能相关推荐
- 【Web技术】1374- 纯 JS 实现灵活的前端主题切换功能
demo在线体验地址:https://hongqingcao.github.io/v-theme-colors/ 源码地址:https://github.com/HongqingCao/v-theme ...
- Android主题切换功能
App一般会有多套颜色主题,下面介绍如何在App中添加主题切换功能: 先添加自定义属性,在values目录下新建attr.xml,根据主题中需要动态修改的颜色或者图片设定自定义属性 <?xml ...
- apkplug主题切换功能之主题包打包编译-07
主题包与普通插件开发相同,只是须上传服务器进行编译生成apk主题包 一 主题包(插件)搭建 1.按照普通app创建流程创建安卓工程 2.按照apkplug插件开发流程添加必要文件 <apkplu ...
- Vue2.0实现炫酷的主题切换功能
效果展示 实现原理 通过写多套样式文件,在项目编译完成后动态更改link标签引入 实现过程 首先如果需要多套主题,必须要有多套样式文件,而样式文件又有很多写法,下面分享一下我的写法 主题css 首先我 ...
- 【Web技术】1431- 总结前端主题切换的思考和现代前端样式的解决方案落地
关于本文 来自:codercao https://juejin.cn/post/7106702604024938503 demo在线体验地址:https://hongqingcao.github.io ...
- CI框架主题切换的功能
CI框架主题切换的功能 本人接触到这个框架不就,属于菜鸟 , 公司现在用CI框架做项目 ,老大要做一个主题切换的功能,说明功能的要求我的脑子里瞬间有几个想法. 脑子里最简单的就是设置全局变量 如 : ...
- jQuery实现无刷新切换主题皮肤功能
主题皮肤切换功能在很多网站和系统中应用,用户可以根据此功能设置自己喜欢的主题颜色风格,增强了用户体验.本文将围绕如何使用jQuery实现点击无刷新切换主题皮肤功能. 实现该功能的原理就是通过点击定义的 ...
- iOS App主题皮肤切换功能简介和具体实现详解 附有源码
分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 0.换肤的应用场景 一般情况下某些App在节假日(春节.中秋.国庆等)切换主题,显得更适合当下的气氛; 切换白天或夜晚模式 ...
- react实现线上主题动态切换功能
demo 框架选择: create-react-app + mobx + webpack5 + antdesign 说明 由于最近公司有多个主题的共存性,所以需要实现线上主题切换的功能,所以本文主要描 ...
最新文章
- 前端碎碎念 之 nextTick, setTimeout 以及 setImmediate 三者的执行顺序
- 【译】MVVM Tutorial with ReactiveCocoa: Part 1/2
- 基于“飞桨”的深度学习智能车
- 公安部全面查找改革开放以来失踪被拐儿童 失踪被拐儿童父母和疑似被拐人员快去采集DNA
- aop简介-aop的底层实现
- 自动驾驶多传感器融合
- php system 执行失败,PHP 执行 system、exec 等函数发生错误
- html让文本框左剧中对齐_Python—Text:功能强大的文本框
- 近期有哪些值得读的QA论文?
- VB进度条 游戏血条控件
- Swift:快速上手攻略
- .mpp文件的使用技巧
- word图片被文字覆盖一部分的解决方法
- 网络原理之TCP协议特性
- 四轮 控制算法 麦轮_AGV-麦克纳姆轮小车控制总结
- 正能量:前思科中国区总裁林正刚先生以自己35年职业经历和心得
- 30岁的程序员......
- 昨天玩游戏的情绪总结
- Flink面试,看这篇就足够了
- 互联网+时代,淘宝模式的衰退不可避免