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

# util.Dragger

Расширяет [IEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md).

Специальный инструмент, который предоставляет механизм для реализации перетаскивания элементов на странице. При использовании следует обратить внимание, что во время работы драггера в системе событий API Яндекс Карт не будут поступать события mousemove и mouseup.

[Конструктор](#constructor-summary) | [Поля ](#properties-summary) | [События ](#events-summary) | [Методы ](#methods-summary)

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

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

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

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

Параметры драггера. ||
|| [`params.autoStartElement`](#param-params.autoStartElement) | — | Тип: HTMLElement|[IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IDomEventEmitter.md)

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

Для начала работы драггера при помощи параметра 'autoStartElement' используется правая кнопка мыши. На устройствах без поддержки мыши перетаскивание правой кнопкой не будет работать. ||
|| [`params.tremor`](#param-params.tremor) | 3 | Тип: Number

Минимальное смещение в пикселях от стартовой точки, необходимое для запуска драггера. ||
|#


**Пример:**

```javascript
// Пример перетаскивания DOM-элемента на карту.
// Метка создается там, где освобождается элемент DOM.
var myMap = new ymaps.Map('map', {center: [35.76, 37.67], zoom: 5});
// Элемент DOM должен иметь свойство CSS position: absolute.
var element = document.getElementById('someId');
var dragger = new ymaps.util.Dragger({
    autoStartElement: element
});
var 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';
}
```

## Поля {#properties-summary}

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

Унаследовано от [IEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md#events). ||
|#

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

#|
|| **Имя** | **Описание** ||
|| [cancel](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Dragger.md#event-cancel) | Отмена работы драггера. Это событие происходит если драггер прекратил свою работу без отправки события util.Dragger.start. К примеру, если было прекращено нажатие без смещения. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get): ||
|| [move](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Dragger.md#event-move) | Изменение положения. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- position - координаты относительно документа. Массива вида [pageX, pageY];
- delta - разница между положениями текущего и предыдущего события драггера. ||
|| [start](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Dragger.md#event-start) | Начало работы драггера. Это событие происходит не в момент нажатия, а при первом измении положения после нажатия. Экземпляр класса Event. Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- position - координаты относительно документа. Массива вида [pageX, pageY]; ||
|| [stop](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Dragger.md#event-stop) | Завершение работы драггера. Это событие не может произойти без события util.Dragger.start. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- position - координаты относительно документа. Массива вида [pageX, pageY];
- delta - разница между положениями текущего и предыдущего события драггера. ||
|#

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

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

## Описание событий {#event_detail}

### cancel {#cancel}

Отмена работы драггера. Это событие происходит если драггер прекратил свою работу без отправки события util.Dragger.start. К примеру, если было прекращено нажатие без смещения. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):

### move {#move}

Изменение положения. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- position - координаты относительно документа. Массива вида [pageX, pageY];
- delta - разница между положениями текущего и предыдущего события драггера.

### start {#start}

Начало работы драггера. Это событие происходит не в момент нажатия, а при первом измении положения после нажатия. Экземпляр класса Event. Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- position - координаты относительно документа. Массива вида [pageX, pageY];

### stop {#stop}

Завершение работы драггера. Это событие не может произойти без события util.Dragger.start. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- position - координаты относительно документа. Массива вида [pageX, pageY];
- delta - разница между положениями текущего и предыдущего события драггера.

## Описание методов {#method_detail}

### destroy {#destroy}

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

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

### isDragging {#isDragging}

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

**Возвращает** работает ли сейчас драггер.

### start {#start}

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

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

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

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`event`](#start-param-event)[*](*star) | — | Тип: [IDomEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IDomEvent.md)

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

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

### stop {#stop}

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

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

<!-- XLIFF_FARM_NTQ5ODc5_CACHING -->

[*star]: Обязательный параметр.