smidl
@smidl
WordPress-разработчик

"Конструктор" товара в svg со сменой цвета и легкой подготовкой изображения?

Добрый день, может кто поделится опытом в создании вот точно такой штуки. Суть в том, что изображение поделено на 2 цвета. По клику можно менять цвет каждого из двух "частей изображения".

5ae99bd6715e0838473070.jpeg

Я понимаю, что все сделано на SVG и просто заливают нужные path. Но вот как на этапе подготовки изображения можно отметить где какая часть изображения? Прописывать вручную не вариант. Как такое делать правильно? Сам алгоритм важен. Под спойлером просто жс-код как реализовано в моем примере.

spoiler
$('.tabs-color-1 span').click(function() {
        $this = $(this);
        var rgb = $(this).css('background-color').match(/\d+/g);
        var hex = '#' + String('0' + Number(rgb[0]).toString(16)).slice(-2) + String('0' + Number(rgb[1]).toString(16)).slice(-2) + String('0' + Number(rgb[2]).toString(16)).slice(-2);
        var text = $('.right-menu .color-1').find('li.c-' + hex.slice(1)).text();
        $('.right-menu .color-1 span').attr('class', 'selected c-' + hex.slice(1)).text(text);
        var object = document.getElementById("svg");
        var svgDocument = object.contentDocument;
        var svgElement = svgDocument.querySelectorAll(":not(.color-2)");
        Array.prototype.forEach.call(svgElement, function(item) {
            item.setAttribute("fill", hex);
        });
    });

Но тут я вижу только работу на готовом изображении, в котором уже все "размечено". Именно алгоритм разметки и последующей обработки смены цветов и интересует. Спасибо!
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08 Куратор тега JavaScript
Потому что svg создается в Adobe Illustrator, об этом говорит
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

Там, если ты посмотришь, есть две группы #g521 (суша) и #g819 (животные). Селектор:
#g819 path {
  fill: red;
}

Что тут не понятного, если все просто.

Ссылка на svg https://chatte.com.ua//upload/iblock/8d2/8d21ed385...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 14:37
3000 руб./в час
24 нояб. 2024, в 13:04
500 руб./в час
24 нояб. 2024, в 12:29
3000 руб./за проект