正如您在下面看到的,我正在嘗試編寫一個程序,該程序將採用圖像的平均顏色,然後將其顯示爲img所在的父類的背景。在多色背景上顯示的img的平均顏色
每個圖像被存儲在一個單獨的類:「sqr1」,「SQR2」等
的問題是,正在被顯示在最後的圖像元素的平均顏色,因爲所有的父類標籤的背景( 'sqr1','sqr2'等)。
有沒有辦法將這兩個分開?
有沒有更好的做這件事?
<html>
<head>
<title>getting average color</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="js/color-thief.js"></script>
</head>
<body>
<p id="bob">...</p>
<div class="sqr1">
<img src="memes/apple.jpg" width="400" height="400">
</div>
<p></p>
<div class="sqr2">
<img src="memes/pie.jpg" width="400" height="400">
</div>
<script type="text/javascript">
var x;
var allimgs = document.getElementsByTagName("img");
var imglen = 2;
let change = function(color,img){
for (var i = 0; i < imglen; i++) {
if (allimgs[i].src == img){
allimgs[i].parentElement.style.backgroundColor = 'rgb('+color[0]+','+color[1]+','+color[2]+')';
}
}
let colormix = function(){
for(x = 0; x<imglen; x++){
var colorThief = new ColorThief();
colorThief.getColorFromUrl(allimgs[x].src, change,1);
console.log();
}
}
colormix();
</script>
</body>
</html>
我在這個答案中複製了你的代碼,並用i和x代替了「索引」,結果無效。這兩種顏色不是分開的,仍然顯示最後一個顏色。 – AtomiCookiez
你爲什麼要用外部的i和x替換內部的索引變量?閉包中的索引變量解決了問題。 – MaxPRafferty
我認爲是對應於for循環中的變量。另一方面,這仍然不能解決問題。 – AtomiCookiez