Клуб API Карт

Подскажите с Dragger

nolan23
4 августа 2015, 20:02

Есть объект на карте - круг. Нужно реализовать 2 функции - перемещение и изменение диаметра.

Соотвественно в макете у объекта - 3 дива. Один собвтенно круг, другой - хендлер для изменения радиуса, третий внутри круга для перетаскивания (он размером в 80% основного круга, чтобы не мешать хэндлеру).

Так вот не работает драггер ни на внутреннем круге, ни на хэндлере. просто не цепляется. 

this._dragger = new Dragger({

                autoStartElement: this._element.getElementsByClassName("layer-target-handle")[0]

            });

            this._dragOffset = [0, 0];

 

            this._draggerOuter = new Dragger({

                autoStartElement: this._element.getElementsByClassName("layer-target-handle-outer")[0]

            });

 

 Внутренние элементы спозиционированы относительно внешнего элемента.

 

5 комментариев
Подписаться на комментарии к посту

Вопрос отличный. А мне вообще интересно как нарисовать круг. Как только я даю разметку например [[54.92115601051494, 82.91375007196613], 1]

И мои предыдущие полигоны все плывут, а круг вообще не отображается.

Ты же знаешь как надо багрепортить

сделай минимальный пример на jsfiddle

http://jsfiddle.net/6a6bkwtz/1/

 

событие драггера start срабатывает на синем кружочке.

 

я разобрался. стоит только пересобрать лайаут - ссыль на autoStartElement пропадает. и это понятно.

как этого избежать? перекрыть в макете rebuild и там задавать autoStartElement ? 

на layout-е нет евента пересборки. его можно кастомным в rebuild сделать.

или есть кошерный вариант?

Вариант 1. Перекрыть у макета build и там создавать драггер 

Вариант 2. Создать элемент и драггер снаружи макета и в build ставлять элемент в обвязку макета

спасибо, добрый человек!