vue项目如何做主题切换?方法是什么?
Admin 2021-10-18 群英技术资讯 1049 次浏览
vue项目如何做主题切换?在项目中,主题切换的需求还是比较常见的,这篇文章就给大家分享一下怎样做一个深色主题和浅色主题切换的效果,本文给大家分享了两种方法,有需要的朋友可以参考。
方法一 多套css
这个方法也是最简单,也是最无聊的。
<!-- 中心 -->
<template>
动态获取父级class名称,进行一个父级class的多次定义
<div :class="className">
<div class="switch" v-on:click="chang()">
{{ className == "box" ? "开灯" : "关灯" }}
</div>
</div>
</template>
<script>
export default {
name: "Centre",
data() {
return {
className: "box"
};
},
methods: {
// 改变class
chang() {
this.className === "box"
? (this.className = "boxs")
: (this.className = "box");
}
},
};
</script>
<style lang="scss">
当class为box 使用witch的css
@import "./style/witch.scss";
当class为boxs 使用black的css
@import "./style/black.scss";
.switch {
position: fixed;
top: 4px;
right: 10px;
z-index: 50;
width: 60px;
height: 60px;
background: #fff;
line-height: 60px;
border-radius: 20%;
}
</style>
每个css文件样式大致相同,只是最外层的父级不一样,分别为.box 和.boxs
方法二 scss动态切换变量
我自己是分为了2个主要文件来做的
_variable.scss 变量管理文件
var()为css3中提出的声明样式变量的方法
var(属性名,属性值)注意属性值不能是字符串
// 主题切换 $bgColor:var(--backgroundColor,rgb(255,255,255)); $fontColor:var(--fonntColor,rgb(0,0,0)); $bgmColor:var(--backgroundMColor,rgb(238,238,238)); $tableColor:var(--tableColor,rgb(218,218,218)); $borderColor:var(--borderColor,rgb(238,238,238)); $tablesColor:var(--tablesColor,rgb(255,255,255)); $inputColor:var(--inputColor,rgb(255,255,255))
创建的_variable.scss 文件我在vue.config.js进行了一个全局的配置,没有在组件中引入
css: {
loaderOptions: {
// 此文件为主题切换文件
sass: {
prependData: `@import "./src/styles/_variable.scss";`,
},
},
},
2.publicStyle.js
这个方法可以去修改var定义的变量
document.getElementsByTagName("body")[0].style.setProperty("属性名", "替换的属性值f");
// 主题切换
const cut = (cutcheack) => {
document.getElementsByTagName("body")[0].style.setProperty("--backgroundColor", cutcheack ? "#121212" : "#fff");
document.getElementsByTagName("body")[0].style.setProperty("--fonntColor", cutcheack ? "#cecece" : "#333");
document.getElementsByTagName("body")[0].style.setProperty("--backgroundMColor", cutcheack ? "#333" : "#eee");
document.getElementsByTagName("body")[0].style.setProperty("--tableColor", cutcheack ? "#000" : "#d8d8d8");
document.getElementsByTagName("body")[0].style.setProperty("--tablesColor", cutcheack ? "#222" : "#fff");
document.getElementsByTagName("body")[0].style.setProperty("--inputColor", cutcheack ? "#666" : "#fff");
document.getElementsByTagName("body")[0].style.setProperty("--borderColor", cutcheack ? "#666" : "#fff");
};
export default cut;
组件中使用
<!-- 首页 --> <template> <div class='home'> <el-switch v-model="cutcheack" active-color="#333" inactive-color="#13ce66" active-text="主题" @change="switchs">
</el-switch>
</div>
</template>
<script>
import cut from "../../utils/publicStyle.js";
export default {
name: "Home",
data() {
return {
cutcheack: false, //主题切换
};
},
methods: {
// 左侧导航隐藏或显示
// 切换主题
switchs() {
cut(this.cutcheack);
},
},
};
</script>
<style lang='scss' scope>
.home {
height: 100%;
width: 100%;
background:$bgColor;
.el-container {
height: 100%;
color:$fontColor;
}
}
</style>
关于“ue项目如何做主题切换”的内容就介绍到这,本文代码具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多大家可以关注其它的相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章我们来了解JavaScript中箭头函数的内容,下文介绍了什么是箭头函数,箭头函数的使用及不适用的场景等等,文中介绍很详细,有需要的朋友可以参考,感兴趣的朋友接下来就跟随小编来了解看看吧!
本篇文章给大家带来了关于JavaScript的相关知识,其中主要整理了数据处理的相关问题,包括了数据的增删改查、数据的排序去重等等内容,下面一起来看一下,希望对大家有帮助。
这篇文章主要介绍了antd table按表格里的日期去排序操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本文主要介绍了vue 大文件分片上传,主要包括断点续传、并发上传、秒传,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
JavaScript实现继承的方法有什么,原理怎么理解?其实实现javascript继承的方法是非常简单的,那么下面我们就一起去看看具体的实现方法吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008