Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Неверно позиционирование курсора (Fabric.js) (https://javascript.ru/forum/dom-window/30152-neverno-pozicionirovanie-kursora-fabric-js.html)

cmd 25.07.2012 19:52

Неверно позиционирование курсора (Fabric.js)
 
Ипользую fabric.js.

В 60% случаев (иногда меньше) курсор мыши неправильно позиционируется относительно объекта в canvas. Демо.

Никакого результата не дали следующие действия:
1. Пробовал играть со стилями canvas и родительского div
2. Пробовал вызывать
canvas.forEachObject(function(object){ object.setCoords(); });
после каждого добавления текста или картинки - не помогает.
3. Пробовал вешать на колбек объекта, типа:
canvas.observe('after:render', function(e) {	 
	var activeObject = canvas.getActiveObject();
	if (activeObject) {
		activeObject.setCoords();
	}
});


Буду благодарен за любые пригодные идеи.
Самая большая жопа в том, что не получается перенести баг с демо-площадки на простую одностраничную тестовую. И лог ошибок девственно чист. Не представляю как делать отладку...

Deff 25.07.2012 20:07

cmd,
:-? Чот не нашел тегов <canvas> - на Demke - ткни пальцем

cmd 25.07.2012 20:17

Прошу прощения, линк кривой вставил. Обновил первый пост.

cmd 26.07.2012 05:35

Вроде нашел решение. Но написать стыдно... Вы скажете, что это невозможно... Завтра ещё раз все проверю и если окажется, что я прав - отпишу... Это шок.

cmd 26.07.2012 05:42

Это какая-то невероятная хрень. В верху страницы был такой код
<div class="logo">
		<a href="/"><img src="logo.png" alt="" /></a>
</div>

Этот код вообще никакого отношения к canvas не имел. Ну, вообще никакого. После него в верстке несколько clear стоит и куча текста. На высоту страницы и скролбар этот код никак не влиял. Но! Но именно из-за этого кода было неправильное позиционирование (узнал я это методом тыка).

И тогда я убрал картинку в background-image, а код изменил:
<div class="logo">
		<a href="/" class="logoHref"></a>
	</div>


И о чудо! Позиционирование курсора в canvas стало правильным! Я не могу никак объяснить эту ошибку. Вообще никак. Кто может - я буду благодарен за просвещения.


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