2010-07-03 2 views
9

Возможно ли использовать Raphael для управления встроенным SVG-изображением? Раньше я использовал Raphael для рисования фигур, но на самом деле не видел, чтобы он использовался для управления существующим SVG-изображением. Если нет, есть ли что-нибудь еще, что позволяет мне легко менять цвета, добавлять события и т. Д. В полигоны встроенного SVG-изображения?Использование Raphael для управления SVG

ответ

0

Забавно, вчера я нашел страницу glitchsvgicons, выполнив это.
Хотя это очень примитивно, просто замените детали на регулярное выражение.
Это может быть намек: видимо, вы можете использовать старый добрый поиск/замену текстовых частей на значки SVG. Но это более подвержено проблемам, чем использование реального дерева ...

+0

Судя по отсутствию ответов, я думаю, что нет возможности использовать Рафаэль для этого. Я думаю, что я использую jquery для управления деревом DOM. – Max

4

Из моего опыта, читающего источник Raphael.js, я должен согласиться с предыдущими сообщениями. Единственный способ, которым я могу думать о замене или изменении SVG, заключается в замене/изменении самой разметки/DOM.

Все, что я хочу добавить в мой ответ, - это краткое общее объяснение , почему это так. Raphael спроектирован как генератор SVG/VML . То есть, Raphael создает объекты JavaScript и добавляет соответствующую разметку SVG/VML в DOM по мере их создания. У объектов есть много дополнительных свойств, которые заставляют их работать в рамках Рафаэля.

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

+0

Документация Raphael относительно режима «ниндзя» поддерживает ваши замечания. режим Raphael 'ninja' удаляет глобальный объект Raphael, но документация указывает, что использование режима «ninja» может препятствовать работе плагинов, поскольку им необходимо получить доступ к глобальному объекту Raphael [link] (http://raphaeljs.com/reference.html # Raphael.ninja) –

+0

Режим ниндзя не имеет ничего общего с моим ответом. Я имею в виду не глобальный объект Рафаэля, а отдельные объекты, которые соответствуют элементам SVG, созданным Рафаэлем. – myw01

Смежные вопросы