---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/util.Dragger.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/llms.txt

# util.Dragger

Расширяет [IEventEmitter](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IEventEmitter.md).

Специальный инструмент, который предоставляет механизм для реализации перетаскивания элементов на странице.

## Конструктор {#constructor}

```javascript
util.Dragger([params])
```

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `params` | — | Тип: Object

Параметры драггера. ||
|| `params.autoStartElement` | — | Тип: HTMLElement\|[IDomEventEmitter](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IDomEventEmitter.md)

DOM-элемент или реализация интерфейса IDomEventEmitter, нажатие на который запустит драггер. ||
|| `params.byRightButton` | false | Тип: Boolean

Для начала работы драггера используется правая кнопка мыши. На устройствах без поддержки мыши перетаскивание правой кнопкой не будет работать. ||
|| `params.tremor` | — | Тип: Object

Объект, который описывает чувствительность драггера при запуске. Этот параметр необходим для предотвращения запуска драггера по клику. ||
|| `params.tremor.offset` | 3 | Тип: Number

Минимальное смещение в пикселях от стартовой точки, необходимое для запуска драггера. ||
|| `params.tremor.time` | 500 | Тип: Number

Интервал времени после вызова метода start до начала работы драггера. Указывается в миллисекундах. ||
|#

**Пример:**

```javascript
// Пример перетаскивания DOM-элемента на карту.
// На месте отпускания DOM-элемента создается Placemark.
var myMap = new ymaps.Map('map', {center: [35.76, 37.67], zoom: 5}),
// У DOM-элемента должно быть выставлено CSS-свойство position: absolute.
    element = document.getElementById('someId'),
    dragger = new ymaps.util.Dragger({
        autoStartElement: element
    }),
    draggerEventsGroup = dragger.events.group();

draggerEventsGroup
    .add('start', function (event) {
        var pos = event.get('position');
        positionElement(pos[0], pos[1]);
        console.log('start');
    })
    .add('move', function (event) {
        var pos = event.get('position');
        positionElement(pos[0], pos[1]);
        console.log('move');
    })
    .add('stop', function (event) {
        draggerEventsGroup.removeAll();
        element.parentElement.removeChild(element);
        // Получаем географические координаты по точке окончания работы драггера.
        var placemarkPosition = myMap.options.get('projection').fromGlobalPixels(
            myMap.converter.pageToGlobal(event.get('position')),
            myMap.getZoom()
        );
        myMap.geoObjects.add(
            new ymaps.Placemark(placemarkPosition)
        );
        console.log('stop');
    });

function positionElement (x, y) {
    element.style.left = x + 'px';
    element.style.top = y + 'px';
}
```

## Поля {#fields}

#|
|| **Имя** | **Тип** | **Описание** ||
|| [events](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IEventEmitter.md#events) | [IEventManager](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IEventManager.md) | Менеджер событий.

Унаследовано от [IEventEmitter](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IEventEmitter.md#events). ||
|#

## События {#events}

#|
|| **Имя** | **Описание** ||
|| [move](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/util.Dragger.md#move) | Изменение положения. Экземпляр класса [Event](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Event.md). Имена полей, доступных через метод Event.get:

• position - координаты относительно документа. Массива вида [pageX, pageY];

• delta - разница между положениями текущего и предыдущего события драггера. ||
|| [start](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/util.Dragger.md#start) | Начало работы драггера. Это событие происходит не в момент нажатия, а при первом измении положения после нажатия. Экземпляр класса [Event](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Event.md). Имена полей, доступных через метод Event.get:

• position - координаты относительно документа. Массива вида [pageX, pageY];

• delta - разница между положениями текущего и предыдущего события драггера. ||
|| [stop](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/util.Dragger.md#stop) | Завершение работы драггера. Это событие не может произойти без события util.Dragger.start. Экземпляр класса [Event](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Event.md). Имена полей, доступных через метод Event.get:

• position - координаты относительно документа. Массива вида [pageX, pageY];

• delta - разница между положениями текущего и предыдущего события драггера. ||
|#

## Методы {#methods}

#|
|| **Имя** | **Возвращает** | **Описание** ||
|| [destroy](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/util.Dragger.md#destroy)() |  | Останавливает работу драггера и удаляет прослушивание события "mousedown" у элемента autoStartElement. ||
|| [isDragging](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/util.Dragger.md#isDragging)() | Boolean | Returns работает ли сейчас драггер. ||
|| [start](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/util.Dragger.md#start)([event](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/util.Dragger.md#start-param-event)) |  | Запускает драггер. Этот метод автоматически вызывается по событию "mousedown" элемента autoStartElement, если он задан. Данный метод можно использовать для инициализации по требованию. К примеру, при получении ответа от сервера или по событию нажатия клавиши клавиатуры. ||
|| [stop](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/util.Dragger.md#stop)() |  | Останавливает драггер. Этот метод можно использовать для досрочной остановки работы драггера. ||
|#

## Описание событий {#description-events}

### move

Изменение положения. Экземпляр класса [Event](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Event.md). Имена полей, доступных через метод Event.get:

• position - координаты относительно документа. Массива вида [pageX, pageY];

• delta - разница между положениями текущего и предыдущего события драггера.

### start

Начало работы драггера. Это событие происходит не в момент нажатия, а при первом измении положения после нажатия. Экземпляр класса [Event](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Event.md). Имена полей, доступных через метод Event.get:

• position - координаты относительно документа. Массива вида [pageX, pageY];

• delta - разница между положениями текущего и предыдущего события драггера.

### stop

Завершение работы драггера. Это событие не может произойти без события util.Dragger.start. Экземпляр класса [Event](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Event.md). Имена полей, доступных через метод Event.get:

• position - координаты относительно документа. Массива вида [pageX, pageY];

• delta - разница между положениями текущего и предыдущего события драггера.

## Описание методов {#description-methods}

### destroy

```javascript
{} destroy()
```

Останавливает работу драггера и удаляет прослушивание события "mousedown" у элемента autoStartElement.

### isDragging

```javascript
{Boolean} isDragging()
```

**Returns** работает ли сейчас драггер.

### start

```javascript
{} start(event)
```

Запускает драггер. Этот метод автоматически вызывается по событию "mousedown" элемента autoStartElement, если он задан. Данный метод можно использовать для инициализации по требованию. К примеру, при получении ответа от сервера или по событию нажатия клавиши клавиатуры.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `event`[*](*parametr) | — | Тип: [DomEvent](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/DomEvent.md)

Инициализирующее событие. ||
|#


\* Обязательный параметр/опция.

### stop

```javascript
{} stop()
```

Останавливает драггер. Этот метод можно использовать для досрочной остановки работы драггера.

[*parametr]:Обязательный параметр/опция.
