Я пытаюсь создать собственный набор цветов на основе изображения из брошюры ниже:
По сути, я хочу создать средство смены цвета, которое позволит пользователю выбирать каждую полосу/секцию лодки, а затем выбирать из доступных цветовых шаблонов, где выбранная область немедленно изменится на их выбор.
Это было бы намного проще с серверной частью базы данных, но существуют ограничения, не позволяющие мне использовать базу данных. Таким образом, я считаю, что застрял, используя HTML/CSS/JavaScript для достижения этой цели.
Это оставляет мне только возможность вручную создавать КАЖДУЮ возможную комбинацию цветовых комбинаций, а затем выполнять некоторую if...then...else
логику для отображения соответствующей комбинации на основе кликов по горячей ссылке... очень утомительное и далеко не благоприятное решение.
Есть ли у кого-нибудь с большим опытом работы в такого рода проектах лучшее предложение о том, как это сделать?
Спасибо!
Поскольку плитки имеют неправильную форму, вы можете создать каждую из них с помощью SVG в Inkscape или Adobe Illustrator и прикрепить событие щелчка для изменения выбранного цвета. Как только вы экспортируете его из Illustrator или Inkscape, он превращается в XML, основанный на модели DOM, поэтому вы можете выбрать каждую часть с помощью CSS и JavaScript.
Затем вы можете сделать то же самое для лодки (и всего остального, что нужно создать, например, сиденья — не уверен, что это ваше намерение) и прикрепить события щелчка к каждой части, чтобы позволить применить текущий выбранный цвет.
Другим вариантом может быть <canvas>
, который, возможно, потребует гораздо больше вычислений на стороне JavaScript и, вероятно, будет сложнее сделать его чувствительным к различным размерам экрана. Я предполагаю, что время загрузки версии Canvas будет меньше.
Что касается необходимости в базе данных, единственное, для чего она вам понадобится, — это сохранить ввод пользователя или заказать его после их завершения (и, возможно, разрешить пользователям извлекать ранее сделанные?). Плитки, лодка и все, что есть на странице, может отображаться при начальной загрузке. Убедитесь, что вы оптимизировали все, потому что существует огромный потенциал для длительного времени загрузки.
Зак Сосье
Аналитический сумасшедший
Паоло Джибеллини
Зак Сосье
Аналитический сумасшедший
Аналитический сумасшедший
Паоло Джибеллини
Аналитический сумасшедший