【实战】网站主题话切换与图片背景主题化切换,解决方案。

开篇  先说一下思想原理

   主题化,肯定是一些公共样式的切换,如hover的背景色,头部的图片的切换,以及字体颜色的切换

   接下来第一步,我们先新建一个xxx.css文件,放在assets中,

这个文件中定义一些你要设置的变量,如我所写的

 /* 蓝色主题  蓝色 */
    --blue-blue:#377fd4;
   

    /* 蓝色主题  首页顶部蓝色 */
    --blue-index-blue:#377fd4;
    /* 蓝色主题  白色 */
    --blue-white:#fff;
    /* 蓝色主题  黑色 */
    --blue-balck:#0d1c28;

然后关键的一步就是,

需要你再   main.js中全局引入这个样式文件

//蓝色主题样式导入

import "@/assets/css/public/blueThere.css"

导入主题后

你在你写样式的时候就可以这样写了,

案例样式

background:var(--blue-blue);

这时候你就可以看到当前这个元素的背景就是蓝色的了

当前这个颜色,是你之前在css中设置好的变量,更多写法欢迎各位在评论去扩展

接下来就是重点了,主题的切换,

当然这个切换的主题,你可以专门去写个公共方法,

//  主题样式的变更
Vue.prototype.$$setColor = function (ole) {
  if (ole == 'red') {
    document.documentElement.style.setProperty('--blue-blue', "#d93838")
    document.documentElement.style.setProperty('--blue-index-blue', "#F54B2F")
    

  } else {
    document.documentElement.style.setProperty('--blue-blue', "#4293f4")
    document.documentElement.style.setProperty('--blue-index-blue', "#377fd4")

  }
  this.$store.commit('sethomeBackground',"")

}

其实就是改变根元素 :root{} 中的这个变量,然后修改这个值,这个值改变了,也会实时渲染在页面上。

当然其它的写法还可以是指定某个元素下的,我也就不扩展去说了,

 这就可以实现颜色值的切换,

二,如果切换背景图片

我在我这里用到了一个变量,

我是这样写的

v-bind:style="{backgroundImage:'url(' + this.$store.state.homeBackground + ')', backgroundRepeat:'no-repeat', backgroundPosition:'center bottom'}"

改变值的时候,我直接改变vuex中的homeBackground,这个值,当然你的图片如果是打包后的,你这个值的写法一定要是

require('../assets/img/banner1.png')    //这样的

因为这样你才可以真的引入打包后的真实图片地址。

如果你学到了,不妨来个 点赞收藏评论转发加关注,如果您可以给个赞赏就更好了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

new 前端

请博主喝杯咖啡吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值