vue中使用css变量实现动态改变爱心颜色

一.需求

需要定时更改显示的样式的颜色,实现爱心流星雨的颜色实时变化

二.实现

需要使用到css变量,js的 document.body.style.setProperty函数
需要在data中定义两个属性
timer:’’,
value:0
在生命周期钩子mounted中进行添加定时器操作 this.timer = setInterval(this.get, 1000)
这样初始化时就会创建一个定时器,1000ms = 1s,则每秒都会运行 this.get函数
至于get函数,在methods中定义
get: function () {
this.value = this.value + 1
}

之后定义一个监听watch

 watch: {
    value: function (value) {
      // 当value发生变化,ok
      if (value % 5 === 0) {
        this.show = true
        var colorList = [ '#ff6666', '#87CEFF', '#483D8B', '#AEEEEE', '#7CCD7C', '#DDA0DD', '#EEB4B4', '#EE9A00' ]
        var num = Math.floor(Math.random() * 8)
        document.body.style.setProperty('--color', colorList[num])
      }
    }
  }

每隔5秒自动设置css变量 --color值为colorList中随机一个

调用: 在style中

.star::before {
  transform: rotate(-45deg);
  background-image: linear-gradient(90deg, var(--color), var(--color));
}
.star::after {
  transform: rotate(45deg);
  background-image: linear-gradient(0deg, var(--color), var(--color));
}

三.效果

在这里插入图片描述

四.参考链接

1.https://www.cnblogs.com/wisewrong/p/7124920.html
2.https://blog.csdn.net/muzidigbig/article/details/89917424

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值