forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   JavaScript / HTML (http://forum.boolean.name/forumdisplay.php?f=136)
-   -   Canvas cursor (http://forum.boolean.name/showthread.php?t=17526)

Олег Адам 16.11.2012 19:45

Canvas cursor
 
В броусерах Opera и Firefox курсор рисует по канвасе точно под курсором. В ІЕ - с глюками, иногда рисует рядом с курсором. А в Chrome і Safari стабильно с глюком (рисует немного не под курсором) - в зависимости от зума броусера. Как с этим бороться?
п.с.: Может истина кроется в том что Safari и Chrome работают на webkit движке?

moka 16.11.2012 20:43

Ответ: Canvas cursor
 
Истина кроется в том как ты вычисляешь позицию курсора относительно элементу.
Т.к. разные броузеры по разному реализуют отступы и т.п. - тебе нужно по разному это высчитывать.

Вот как я высчитываю, работает отлично. Нужен jQuery для вычисления offset.
http://jsfiddle.net/YVezg/

Старайся не даблпостить темы.

Олег Адам 17.11.2012 15:50

Ответ: Canvas cursor
 
Цитата:

Сообщение от MoKa (Сообщение 243798)
Истина кроется в том как ты вычисляешь позицию курсора относительно элементу.
Т.к. разные броузеры по разному реализуют отступы и т.п. - тебе нужно по разному это высчитывать.

Вот как я высчитываю, работает отлично. Нужен jQuery для вычисления offset.
http://jsfiddle.net/YVezg/

Старайся не даблпостить темы.

Все круто, но мне нужно юзать pure javascript без всяких библиотек... пока то я так вычисляю:
Код:

function ev_canvas( ev ) {
          if (ev.layerX || ev.layerX == 0) { // Firefox
                ev._x = ev.layerX;
                ev._y = ev.layerY;
        }        else if (ev.offsetX || ev.offsetX == 0) { // Opera, Chrome
                        ev._x = ev.offsetX;
                        ev._y = ev.offsetY;
                }
}


moka 17.11.2012 17:55

Ответ: Canvas cursor
 
Так не выйдет. Тебе нужно вычислить смещение относительно верхнего левого угла экрана, а значит нужно пробегать по всем отцам элемента до самого body. Учитывая все маргины, рамки и паддинги.
Вот тут почитай: http://stackoverflow.com/questions/1...tion-in-canvas

Да и Google знает очень многое, учись им пользоваться. Т.к. я это сделал одним запросом - первая ссылка.

Олег Адам 17.11.2012 19:54

Ответ: Canvas cursor
 
Да )) Предстоит многому еще научится..


Часовой пояс GMT +4, время: 09:23.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot