javascript - 无法循环获取平均图像颜色

标签 javascript

我想获得 <p> 中的所有三个图像背景颜色文本颜色但无法循环如何将所有图像循环并合并为一个, 我有三张图像,我只想循环这三张图像的颜色。

这里 - http://jsfiddle.net/xLF38/4346/

感谢@james 的精彩回答 Get average color of image via Javascript但只支持我想要的类明智的 id

最佳答案

只需按类获取目标元素,就像使用 image 类检索节点一样。

var r = document.getElementsByClassName('image');
var targets = document.getElementsByClassName('imagecolor');
var p ;
for (p = 0 ; p < r.length ; p++ ){
   var rgb = getAverageRGB(r[p]);
   targets[p].style.color = 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')';
}

为了获得更好的性能,请避免在循环体中同时读取 DOM 和写入 DOM 操作(使用单独的循环)。 Demo

var r = document.getElementsByClassName('image');
var targets = document.getElementsByClassName('imagecolor');
var rgb = [];
for (p = 0 ; p < r.length ; p++ ){
   rgb.push(getAverageRGB(r[p]));
}
rgb.forEach((el,i) => {
   targets[i].style.color = 'rgb('+el.r+','+el.g+','+el.b+')';
})

关于javascript - 无法循环获取平均图像颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51628321/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'querySelector' of undefined

javascript - 如何使用 mustache js 模板引擎访问嵌套对象

javascript - 检查字符串的结尾

javascript - 使用单个按钮显示和隐藏文本

javascript - JS 揭示模块模式 : Params that shouldn't be used by usercode

javascript - 将 Angular 1.5 组件路由器与 Express.js 结合使用

javascript - 如何借助 javascript 查找打印机列表?

javascript - Chart.js 中的水平轴标签

javascript - Typeahead.js 不显示下拉菜单

javascript - mouseenter 离开导致 jQuery 中的闪烁