Использование HTML, CSS и JavaScript Мне нужно создать поля ввода Form with Selection и поля выбора Radio. Когда выбрано каждое из этих полей, мне нужно создать изображение предварительного просмотра на основе выбранного ими выбора.
Каждое поле будет иметь связанное с ним изображение, а затем оно будет иметь то же изображение, реплицированное для каждого цвета.
Итак, если было 20 полей формы, которые пользователь мог бы выбрать, у них было бы 20 изображений x 10 различных цветовых вариантов, и это привело бы к тому, что было бы 200 изображений, чтобы создать там изображение предварительного просмотра!
Вот изображение, показывающее пример того, что я пытаюсь выполнить... веб-сайт Vans использует эту технику для пользовательского генератора обуви с предварительным просмотром...
Когда вы выбираете раздел, а затем цвет для этого раздела, он загружает прозрачное изображение и складывает его вместе.
Для тестирования я сделал набор прозрачных изображений для демонстрационной формы с только 4 полями и 3 цветовыми вариантами, чтобы в целом было 12 изображений. (Все показано ниже)
Когда все поля выбраны, он должен создать предварительный просмотр изображения пользователю, который похож на этот...
или Альтернатива имеет верхнюю/крышу, более похожую на форму типа восьмиугольника
bottom_blue
bottom_green
bottom_red
entrance_blue
entrance_green
entrance_red
top_blue
top_green
top_red
top_red_octo
top_blue_octo
top_green_octo
Вот базовая форма, которая могла бы использовать изображения...
<form id="form-ChannelType">
<p>
Select a bottom (just 1 in the demo)<br>
<select name="bottom" class="form-control" id="bottom" size="1">
<option value="bottom1">Bottom 1</option>
</select>
</p>
<p>
Select a Front (just 1 in the demo)<br>
<select name="front" class="form-control" id="front-1" size="1">
<option value="front1">Front 1</option>
</select>
</p>
<p>
Select a Top<br>
<select name="bottom" class="form-control" id="bottom" size="2">
<option value="bottom_triangle">Triangle Shaped Top</option>
<option value="bottom_octo">Octo. Shaped Top</option>
</select>
</p>
<p>
Select a Color<br>
<select name="color" class="form-control" id="color" size="3">
<option value="blue">Blue</option>
<option value="green">Green</option>
<option value="red">Red</option>
</select>
</p>
</form>
Может ли кто-нибудь помочь мне в логике того, как создать такую форму? Мне нужно заставить его работать таким образом, чтобы его можно было масштабировать до сотен опций и изображений.
В базовой форме выше, нужно будет создать изображение предварительного просмотра путем укладки соответствующих изображений на основе выбора формы. Я не ожидаю, что кто-то сделает всю работу для этого, если они просто не справятся с задачей, но я был бы признателен за любую помощь или идеи о том, как лучше всего сделать эту работу?
Примечание: Мой последний проект, который будет основан на этом, будет сильно отличаться. Он будет использоваться для пользовательского генератора знаков. Я не могу использовать библиотеки ImageMagick или GD для создания изображений на лету, поэтому каждое изображение должно быть построено и каждый слой изменен. Вместо того, чтобы строить простую структуру дома, у меня будут такие варианты, как...
- Тип знака, который определит многие параметры, которые отображаются или скрыты после него, в зависимости от выбранного типа знака.
- Шрифт базовое изображение будет иметь по одному для каждого шрифта, а в каждом шрифте будет также каждый цвет. Таким образом, 10 шрифтов x 15 цветов = легко могут быть более 150 возможных изображений, чтобы показать, как изображение BASE
- Цвета. От 2 до 4 различных вариантов цвета, которые изменят цвет для разных частей знака. Таким образом, все комбинации изображений, перечисленные выше, разные области цвета = много изображений
Таким образом, вы можете видеть, что это будет довольно большой зверь, когда все это будет сделано, и я мог бы использовать любую помощь, чтобы хорошо начать с этого. Я не думаю, что ОГРОМНОЕ, если /else или оператор switch - лучший способ пойти с чем-то подобным, который может иметь сотни комбинаций изображений, но я мог ошибаться?