Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 16.11.2012, 19:45   #1
Олег Адам
AnyKey`щик
 
Аватар для Олег Адам
 
Регистрация: 15.11.2012
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Сообщение Canvas cursor

В броусерах Opera и Firefox курсор рисует по канвасе точно под курсором. В ІЕ - с глюками, иногда рисует рядом с курсором. А в Chrome і Safari стабильно с глюком (рисует немного не под курсором) - в зависимости от зума броусера. Как с этим бороться?
п.с.: Может истина кроется в том что Safari и Chrome работают на webkit движке?
(Offline)
 
Ответить с цитированием
Старый 16.11.2012, 20:43   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Canvas cursor

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

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

Старайся не даблпостить темы.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Олег Адам (17.11.2012)
Старый 17.11.2012, 15:50   #3
Олег Адам
AnyKey`щик
 
Аватар для Олег Адам
 
Регистрация: 15.11.2012
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Canvas cursor

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

Вот как я высчитываю, работает отлично. Нужен 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;
		}
}
(Offline)
 
Ответить с цитированием
Старый 17.11.2012, 17:55   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Canvas cursor

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

Да и Google знает очень многое, учись им пользоваться. Т.к. я это сделал одним запросом - первая ссылка.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Олег Адам (17.11.2012)
Старый 17.11.2012, 19:54   #5
Олег Адам
AnyKey`щик
 
Аватар для Олег Адам
 
Регистрация: 15.11.2012
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Canvas cursor

Да )) Предстоит многому еще научится..
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com