小编Sco*_*ton的帖子

根据百分比值在两种颜色之间进行插值

我目前正在 JS 中开发一个动画库,需要根据 0 - 1 之间的进度值计算两个值之间的颜色。

例如,该函数可能如下所示。这将以十六进制格式输入两种颜色。

  • colorA = 初始颜色
  • colorB = 最终颜色
  • 进度 = 0.5 (50%)

const interpolateColour = (colourA, colourB, progress) => { return polColour } 

Run Code Online (Sandbox Code Playgroud)

目标是返回两种颜色之间 0.5 进度或 50% 的颜色。我知道 HSV 的 HEX 颜色很可能需要转换为 RGBA 才能实现此效果,但不确定哪种方法是最好的方法。

编辑:我想通了......


const is = {
    hex: a => /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a),
    rgb: a => /^rgb/.test(a),
    hsl: a => /^hsl/.test(a),
    col: a => (is.hex(a) || is.rgb(a) || is.hsl(a)),
}

const convertToRgba = (colour) => {
    return is.hex(colour) ? hexToRgba(colour)
        : is.rgb(colour) ? rbgToRgba(colour) …
Run Code Online (Sandbox Code Playgroud)

javascript animation colors reactjs

4
推荐指数
1
解决办法
3720
查看次数

标签 统计

animation ×1

colors ×1

javascript ×1

reactjs ×1