Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   JavaScript Paint (https://javascript.ru/forum/project/8415-javascript-paint.html)

Ilyan 24.03.2010 13:40

JavaScript Paint
 
Доделал JavaScript Paint для несложного редактирования изображений. Много чего не хватает (особенно контрл+зед), но все жизненоважное присутствует :) Поиграться можно тут.

Круг, эллипс, квадрат, прямоугольник, кисть, надпись (в т.ч. ссылки), "картинка в картинке", пока все. За ядро взята вот эта библиотека. Вначале думал, что библиотка канвасовская, но потом узрел, что рисует она чистым DOM, тоесть по-настощему true :)

Kolyaj 24.03.2010 13:49

Цитата:

Сообщение от Ilyan
тоесть по-настощему true

Что трушного в куче дивов?

Ilyan 24.03.2010 13:58

Цитата:

Сообщение от Kolyaj (Сообщение 48885)
Что трушного в куче дивов?

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

Kolyaj 24.03.2010 13:59

Тру -- это SVG, а дивы -- костыль.

Ilyan 24.03.2010 14:18

Не вникал в SVG, спорить не буду. Элементам svg можно присваивать innerHTML, присваивать события типа element.onclick = function() {}?

Kolyaj 24.03.2010 14:32

Цитата:

Сообщение от Ilyan
можно присваивать innerHTML

Какому из дивов, образующих эллипс, вы будете присваивать innerHTML?

Ilyan 24.03.2010 14:38

Цитата:

Сообщение от Kolyaj (Сообщение 48901)
Какому из дивов, образующих эллипс, вы будете присваивать innerHTML?

Эллипс - дети (набор дивов) родительского дива. Для каждой фигуры создается отдельный див, в т.ч. для линии кисти, уже в этом диве рисуется то, что надо.

---
innerHTML я привел для примера, основная сила дома - в событиях. По клику на эллипсе можно перекрашивать этот эллипс например или менять координаты положения.

Ilyan 24.03.2010 15:20

Цитата:

Сообщение от Ilyan
Много чего не хватает (особенно контрл+зед)

Добавил "отмену".

subzey 24.03.2010 16:48

Цитата:

Сообщение от Ilyan
Элементам svg можно присваивать innerHTML, присваивать события типа element.onclick = function() {}?

Насчет innerHTML не уверен, но .setAttribute() и .appendChild() вполне себе работают.

События вешать — да, можно. И css. И бесскриптовую анимацию.

Ilyan 24.03.2010 17:09

subzey, спасибо, тогда и это намного интереснее, чем я думал, пойду изучать :) Значит, единственный недостаток свг - кроссбраузерность?


Часовой пояс GMT +3, время: 03:43.