Antd改变Modal弹窗header颜色并且随主题颜色在线改变

1.改变Modal弹窗颜色

在Antd中,Modal弹窗默认颜色为白色,我们为Modal外层添加一层div,即可如下修改弹窗头部属性:

<style lang="less" scoped>
   /deep/ .ant-modal-header{
    background-color: #40a9ff;
  }
   /deep/ .ant-modal-title{
    color: white;
  }
</style>

2.颜色随主题改变

我们有时候需要颜色随着主题的改变而动态变化

在官方文档中,给出如下解释:
在这里插入图片描述
Antd的配置项被保存到LocalStorage中,我们主要获取LocalStorage中的颜色信息DEFAULT_COLOR

 this.myColor = window.localStorage.getItem('DEFAULT_COLOR')

这样我们就得到了当前主题的颜色,将此颜色赋值给Modal颜色属性即可。

细节问题

  1. 在第一次获取Modal头部类(.ant-modal-header)时,发现节点的值为null,第二次获取才成功,我进行了异步操作解决这个问题:
let newPromise = new Promise((resolve) => {
          resolve()
        })
        newPromise.then(() => {
          let color = document.querySelector('.ant-modal-header')
          console.log(color)
        })
      },
  1. 将主题颜色赋值给Modal头部类
 		  this.myColor = window.localStorage.getItem('DEFAULT_COLOR')
          color.style.backgroundColor=this.myColor

但此时赋值是无效的,因为此时获取的myColor是一个字符串,例如"#ffcc00",如果直接赋值,那么""也包含了进去,所以对得到的字符串进行截取:

          this.myColor = this.myColor.substring(1,8)
          color.style.backgroundColor=this.myColor

这样,color.style.backgroundColor就可以识别颜色了。

至此实现了在Antd中Modal弹窗的header颜色随主题颜色在线改变的需求,如果有更好的办法,欢迎大家交流…

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

失忆症患者_

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值