这是一个比较饱和度的函数:
const compareSaturation = (a,b) => a.saturation - b.saturation;为了防止代码重复,我们可以编写一个高阶函数来返回一个比较函数来对比各种属性:
const compareAttribute = attribute => (a,b) => a[attribute] - b[attribute];const compareLightness = compareAttribute('lightness');const compareSaturation = compareAttribute('saturation');const compareHue = compareAttribute('hue');平均属性
你可以搭配各种 JavaScript 数组方法来平衡颜色数组中的特定属性 。首先,你可以使用 reduce 求和并用 Array length 属性分割来计算一个属性的均值:
const colors = [/* ... an array of color objects ... */];const toSum = (a,b) => a + b;const toAttribute = attribute => element => element[attribute];const averageOfAttribute = attribute => array => array.map(toAttribute(attribute)).reduce(toSum) / array.length;你可以用它来“规范化”一组颜色:
/* ... continuing */const normalizeAttribute = attribute => array => { const averageValue = https://www.isolves.com/it/cxkf/yy/CSS2/2020-09-03/averageOfAttribute(attribute)(array); const normalize = overwriteAttribute(attribute)(averageValue); return normalize(array);}const normalizeSaturation = normalizeAttribute('saturation');const normalizeLightness = normalizeAttribute('lightness');const normalizeHue = normalizeAttribute('hue');4、结论
颜色是网络不可或缺的一部分 。将颜色分解为属性就可以灵活控制它们,并创造出无限的可能 。
查看英文原文:
https://blog.logrocket.com/how-to-manipulate-css-colors-with-javascript-fb547113a1b8
福利推荐
前端领域的技术演进一直要比其他技术快一些,这给前端工程师带来持续的挑战 。这里整理了从 Vue 到 React、IOS 到 Andoid、再到前端架构体系的干货课程,带你解读从前端小工到专家的实战心法,高效解决 80% 的开发难题 。
推荐阅读
- 云数据库 VS 自建数据库,到底该如何抉择?
- 征途手机版技能点如何获取答题答案
- 春季如何养生 饮食方面四点要注意
- 春季眼部疾病增多 如何预防麦粒肿
- “春困”让人非常难受 如何巧用饮食对待春困
- 买了DSD无损数字播放器,正品DSD音源如何找?
- 什么是计时攻击?Spring Boot 中该如何防御?
- 老茶头冲泡方法,如何冲泡老茶头
- 红茶该如何存储,如何保存苦丁茶
- 如何使用 WebGL 进行实时视频处理
