Comments 16
Можно узнать в каких браузерах все работает?
Я любитель Оперы, демка не работает. Даже при наведении на фигуры — цвет не меняют.
Спасибо.
Я любитель Оперы, демка не работает. Даже при наведении на фигуры — цвет не меняют.
Спасибо.
В 8ie тоже не работает (даже не отображает сами фигуры)
ie до 9 версии не поддерживает canvas вообще. Вам или надо скачать плагин для ie но это все равно, что хром установить ибо все будет на вебките рендериться
либо реализовывать сходный функционал параллельно на VML
либо реализовывать сходный функционал параллельно на VML
Простите, в устаревших браузерах — не работает.
Для совместимости с Opera нужно использовать не e.layerX, а e.offsetX. Так как первый возвращает undefined
Пофиксил. Работает во всех современных браузерах.
Автору спасибо за труд, но думаю стать скорее смутить начинающих. Как вы и заметили в заключении, тут ещё много тонкостей, а небольшое api для отрисовки фигур ничего как таковое не даст. Нужно во первых понимать как работает канва, чтобы грамотно оптимизировать отрисовку, кешировать результаты, сделать чтобы отрисовывались меняющиеся части а не весь холст и тд.
Так что тут для написание постов непочатый край )).
Так что тут для написание постов непочатый край )).
Мне одному уже сразу ясно, кто автор статьи если речь идет о HTML5?
> использование map + area
— и ещё area медленее работает, чем вычисление расположения мыши в JS (проверено однажды в проекте с пробками на карте). Поэтому приложения, критичные ко времени, лучше сразу писать в подобной оболочке.
— и ещё area медленее работает, чем вычисление расположения мыши в JS (проверено однажды в проекте с пробками на карте). Поэтому приложения, критичные ко времени, лучше сразу писать в подобной оболочке.
Я понимаю, конечно, что это только примитивный пример, но сходу возник вопрос.
Зачем в Mouse массив elements?
Получается, что каждый новый элемент приходится добавлять в this.elements объекта CF и делать this.mouse.add, чтобы он добавился в this.elements объекта mouse.
Не проще ли из Mouse дергать this.canvas.elements, сделав предварительно в инитиалайзере this.canvas = canvas?
Зачем в Mouse массив elements?
Получается, что каждый новый элемент приходится добавлять в this.elements объекта CF и делать this.mouse.add, чтобы он добавился в this.elements объекта mouse.
Не проще ли из Mouse дергать this.canvas.elements, сделав предварительно в инитиалайзере this.canvas = canvas?
Sign up to leave a comment.
Создание фреймворка для Canvas: объекты и мышь