Как стать автором
Обновить

Raphaël

Время на прочтение2 мин
Количество просмотров38K

Привет, Хабр


В этом коротком очерке хотел бы рассказать о маленькой (по словам авторов) библиотеки на JavaScript — Raphaël. Данная библиотека использует для работы SVG и VML и служит, как не сложно догадаться для облегчения работы с векторная графикой в вебе.
Так же по утверждению создателей работает во всех актуальных на даных момент браузерах, а именно Firefox 3.0+, Safari 3.0+, Opera 9.5+ and Internet Explorer 6.0+. К сожалению обошли создатели внимание вторую лису, хотя сюда по данным лайвинтернета на ней приходится почти 2% пользователей, что вообще немало. Да, и не смотря на то, что Хром не заявлен, в нем тоже все работает как часы.
Вообще, на сайте библиотеки предельно понятным языком написано что она для чего она и как она. Но коротко остановимся на этом
Для начала нам необходимо создать канвас объект (его мы привязываем к объекту DOM указывая ширину и высоту, или же указываем только координаты левого верхнего угла будущего объекта)

// Each of the following examples create a canvas that is 320px wide by 200px high
// Canvas is created at the viewport's 10,50 coordinate
<br/>var paper = Raphael(10, 50, 320, 200);
// Canvas is created at the top left corner of the #notepad element (or its top right corner in dir="rtl" elements)
<br/>var paper = Raphael(document.getElementById("notepad"), 320, 200);
// Same as above
<br/>var paper = Raphael("notepad", 320, 200);


* This source code was highlighted with Source Code Highlighter.


Далее мы можем создавать любые графические примитивы, вызывая соответствующие методы объекта paper. Название методов одноименны с графическими примитивами которыми мы оперируем в рамках стандарта SVG (это например rect circle lineи т.д.) Вот например так создаем прямоугольник
<br/>var paper = Raphael(document.getElementById("notepad"), 320, 200);
paper.rect(0, 0, 640, 480, 10).attr({fill: "#fff", stroke: "none"});
* This source code was highlighted with Source Code Highlighter.


Не будем тут останавливатся на долго, об этом подробнейшим образом написано в документации.
Не маловажным плюсов всего этого хозяйства явлется то, что с любым графическим элементом мы можем свзязать события, подобно тому как связываем их с любым DOM объектом, мне показалось это весьма полезным, учитывая что библиотека некоторое время шла бок о бок с фреймворком jquery, работы с элементами графика становилась практически тривиальной.
Итого:Получаем кроссбраузерное решение вечного спора canvas с VML, возможность работать с элементами графики как с объектами DOM, и хорошую документацию библиотки (не смотря на то, что она на английском языке, все предельно ясно, хотя, думаю, если кто-то у кого с языками получше возьмется перевести — сообщество ему только спасибо скажет). Разработка получается действительно быстрой, вот например на написание этого (просто для примера и собственного изучения) ушло не более получаса.
UPD
<img title="" border=«0» alt="" src=«http://img15.imageshack.us/img15/1651/60319441.png»/ >
А вот векторный дракон (из примеров на сайте) пример из области «вот так мы можем, но никогда так не делайте» браузер долго думал… (картинка-скрин, по клику векторная)
UPD2 В хроме drag&drop работает криво
Теги:
Хабы:
Всего голосов 69: ↑57 и ↓12+45
Комментарии33

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн