Неправильно выводится массив цветовой палитры

0

Хотелось играть и иметь повод, чтобы узнать больше jQuery, поэтому я решил попробовать свои силы в Color Thief, но у меня проблема с правильной выдачей массива. К сожалению, документация не самая большая для Color Thief, но после некоторых поисков я нашел вопрос в отношении getColor() но не getPalette().

Из моего понимания блога Color Thief был createPalette() - массив, но когда я пытаюсь отобразить содержимое, которое он остается на <span>:

Код:

HTML:

<div class="imgtest">
<img id="theimage" src="item.jpg" alt="image">
</div>
<div id="results"></div>

jQuery:

<script type="text/javascript">
        $(window).ready(function(){
          var sourceImage = document.getElementById("theimage");
          var colorThief = new ColorThief();
          var color = [colorThief.getPalette(sourceImage, 2)];
          var newHTML = $.map(color, function(value) {
              return('<span>' + value + '</span>');
          });
          $("#results").html(newHTML.join(""));
       });
</script>

Вывод:

<span>205,144,9,245,228,217,172,196,11</span>

Что я делаю не так? Моя конечная цель - отображать каждый цвет в массиве с именем color[].

Теги:
color-picker

1 ответ

1
Лучший ответ

Если я прав, думая, что вы хотите, чтобы каждый цвет находился внутри него, вам нужно присоединиться к значениям внутри отображения. Каждое значение color представляет собой массив, содержащий значения цвета RGB:

var color = colorThief.getPalette(sourceImage, 2);
var newHTML = $.map(color, function(value) {
    return('<span>' + value.join(', ') + '</span>');
});
$("#results").html(newHTML.join(''));
  • 0
    Это должно быть <span>119, 175, 169</span><span>214, 191, 131</span><span>53, 37, 28</span> и все это в одной строке. Если они вам нужны в разных строках, поменяйте разметку.
  • 0
    ах ты прав я вижу что это было Спасибо и еще один за помощь. Если вы не возражаете, можете ли вы объяснить, что (', ') делает?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню