js如何做出彩色字体颜色变化

   在介绍如何实现彩色字体颜色变化前,我想让大家了解 什么是颜色模式

以前主要采用关键字、16进制和RGB这三种设置颜色的方式。CSS3出现后,增加了RGBA、HSL、HSLA这三种模式,极大地丰富了CSS颜色设置的方式

命名颜色

直接使用的名字的颜色值称为命名颜色

16进制

16进制是设置颜色值的常用方式,将三个介于00-FF的十六进制数连接起来,若16进制的3组数各自成对,则可简写为3位

RGB模式

通过红绿蓝三种颜色不同占比创造出的颜色是RGB模式的颜色。显示器是由一个个像素构成

RGBA模式

rgba模式是在RGB基础上增加了alpha通道,用来设置颜色的透明度,其中这个通道值的范围是0-1。0代表完全透明,1代表完全不透明

HSL模式

HSL模式是通过对色调(H)、饱和度(S)、亮度(L)三个颜色通道的变化以及它们相互的叠加得到各式各样的颜色。HSL标准几乎可以包括人类视力所能感知的所有颜色

HSLA模式

HSLA模式是HSL的扩展模式,在HSL的基础上增加一个透明通道alpha来设置透明度


上述对比中我们可知 HSL无疑是实现最优选 ```css hsl(h,s,l) ```   h:色调(hue)可以为任意整数。0(或360或-360)表示红色,60表示黄色,120表示绿色,180表示青色,240表示蓝色,300表示洋红(当h值大于360时,实际的值等于该值模360后的值)

s:饱和度(saturation),就是指颜色的深浅度和鲜艳程度。取0-100%范围的值,其中0表示灰度(没有该颜色),100%表示饱和度最高(颜色最鲜艳)

l:亮度(lightness),取0-100%范围的值,其中0表示最暗(黑色),100%表示最亮(白色)


了解了颜色模式,我们来设计脚本

首先我们需要一个变量来记录当前hue值

var h = 0
setInterval(()=>{
    h++;
    if(h >= 360)h = 0;//hue到达最大值时重置
    document.querySelectorAll(".colorfulFont").forEach(item=>{
        item.style.color = `hsl(${h},100%,50%)`
    })
},10)

在这里,所有class="colorfulFont"的字体颜色都会变成彩色

我们再用一个HTML测试

<span class="colorfulFont">你好</span>
<script>
    var h = 0;
    setInterval(()=>{
        h++;
        if(h >= 360)h = 0;//hue到达最大值时重置
        document.querySelectorAll(".colorfulFont").forEach(item=>{
            item.style.color = `HSL(${h},100%,50%)`
        })
    },10)
</script>

这就是本篇文章的全部内容,喜欢的请点赞

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值