重点是这个。随着时间的推移,用户通过使用该网站获得了经验。进度条的颜色随着用户的等级而变化。颜色可以通过 HEX 或 RGB 代码设置,但我很困惑。我确信这可以用一些数学公式来表达,但显然我没有学好数学。
级别就像一个数字序列:从 1 到无穷大。这是公式中唯一已知的参数。有必要以一种颜色从一种颜色到另一种颜色的非常平滑的方式来表达它。也就是说,如果之前的颜色是(0, 0, 5),那么下一个级别会将其更改为(0, 0, 6)。但这还不是全部。为了避免黑色和白色,我认为从蓝色过渡到绿色,然后从那里过渡到红色会更正确。如果颜色用完了,那么它们将继续使用新的颜色。
所以从 开始(0, 0, 255),然后是绿色(0, 255, 0),然后是红色(255, 0, 0)。但接下来要注意的是,每对颜色之间都会有一个所谓的中间色。例如,蓝色和绿色之间将是(0, 255, 255)。之后,蓝色将开始下降到 0。
在过去的 3 个小时里,我已经很好地打破了我的头,写了一篇关于需要做什么的完全不合逻辑的猜测。也许有人处理过类似的事情并会举出例子?或者至少在理论上暗示了如何做到这一点?
你可以使用
hsl- 第一个参数负责颜色。没错,我不知道您如何想象无限显示......毕竟,颜色的数量是有限的。但是你可以想象这样的事情。您可以使用 hsl 颜色
如果支持的浏览器允许模板字符串,那么您可以进一步简化。
定时器选项:
在这种情况下鲜花会发生什么:
结果,周期为 1530 级(迭代)。因此,要计算颜色值,取 就足够了
level % 1530。正面解决方案:
levelBase您可以通过将用于确定颜色值的逻辑移动到单独的函数中,将代码行数从 34 减少到 24 :颜色的人工“对齐”将行数从 24 减少到 19,并缩短了一些代码行: