Использование Raphael.js для рисования элементов интерфейса

Знайте о любых примерах использования Raphaeljs для создания элементов пользовательского интерфейса для веб-приложения. Контейнеры / окна форм, элементы управления с вкладками и т. Д. Какие-либо предложения при этом (например, кэширование сгенерированного SVG / RVML для повторного использования?)?

2 ответа

Простой пример - использование иконок, сгенерированных Raphael.

Взгляните на эти 130 икон, созданных самим мистером Рафаилом. Они обеспечивают очень хорошее масштабирование, как и все другие виджеты пользовательского интерфейса, сделанные с SVG.

Одним из наиболее важных методов будет .node(), так что вы можете прикрепить обработчики к связанным элементам. С .node() было бы легко заставить Рафаэля взаимодействовать с некоторыми другими библиотеками, которые более ориентированы на пользовательский интерфейс.

У Рафаэля даже есть несколько встроенных обработчиков событий.

Я работаю над чем-то подобным для приложения бизнес-аналитики. У меня есть класс контроллера / фабрики, который кэширует сгенерированные svg/vml на уровне панели, а не на уровне виджета. На самом деле в этом нет ничего волшебного, просто поднять методы метода Dift / LowerDash, которые проверяют, существует ли указанная панель, создают ее, если она не существует, и скрывают предыдущую.

Если вы даже думаете, что можете логически сгруппировать некоторые элементы, сделайте для них набор. Сначала я боялся падения производительности, но если вы посмотрите на источник g.raphael, даже разработчик Raphael использует их много.

Каждый созданный мной индикатор имеет набор фона и набор переднего плана (который состоит из циферблата, индикаторов и текста), оба из которых включаются в набор переднего плана своего родительского виджета, который, в свою очередь, включается в набор переднего плана. всей приборной панели. Таким образом, я могу скрыть всю панель мониторинга и отобразить другую с двумя вызовами методов, сохраняя при этом детальный контроль внутри объектов панели мониторинга. Интерфейс с вкладками будет работать так же.

Другие вопросы по тегам