---
title: "DragMoveHandler | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Interface DragMoveHandler<T, E>

#### Deprecated[](#deprecated)

Will be removed from public API in MapTiler SDK v4

interface DragMoveHandler<[T](#t) extends [DragMovementResult](https://docs.maptiler.com/sdk-js/api-reference/interfaces/DragMovementResult/), [E](#e) extends [Event](https://docs.maptiler.com/sdk-js/api-reference/classes/Event/)\> {  
    [contextmenu](#contextmenu)?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [dblclick](#dblclick)?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [dragEnd](#dragend): (e: [E](#e)) \=> void;  
    [dragMove](#dragmove): (e: [E](#e), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [T](#t);  
    [dragStart](#dragstart): (e: [E](#e), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void;  
    [keydown](#keydown)?: (e: [KeyboardEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.KeyboardEvent/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [keyup](#keyup)?: (e: [KeyboardEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.KeyboardEvent/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [mousedown](#mousedown)?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [mousemove](#mousemove)?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [mousemoveWindow](#mousemovewindow)?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [mouseup](#mouseup)?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [mouseupWindow](#mouseupwindow)?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [renderFrame](#renderframe)?: () \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [touchcancel](#touchcancel)?: (  
        e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
        points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
        mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
    ) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [touchend](#touchend)?: (  
        e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
        points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
        mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
    ) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [touchmove](#touchmove)?: (  
        e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
        points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
        mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
    ) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [touchmoveWindow](#touchmovewindow)?: (  
        e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
        points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
        mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
    ) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [touchstart](#touchstart)?: (  
        e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
        points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
        mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
    ) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [wheel](#wheel)?: (e: [WheelEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WheelEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/);  
    [disable](#disable-1)(): void;  
    [enable](#enable-1)(): void;  
    [isActive](#isactive-1)(): boolean;  
    [isEnabled](#isenabled-1)(): boolean;  
    [reset](#reset-1)(): void;  
}

#### Type Parameters

-   T extends [DragMovementResult](https://docs.maptiler.com/sdk-js/api-reference/interfaces/DragMovementResult/)
-   E extends [Event](https://docs.maptiler.com/sdk-js/api-reference/classes/Event/)

#### Hierarchy ([View Summary](https://docs.maptiler.com/sdk-js/api-reference/hierarchy/#DragMoveHandler))

-   [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/)
    -   DragMoveHandler
        -   [MousePanHandler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/MousePanHandler/)
        -   [MouseRotateHandler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/MouseRotateHandler/)
        -   [MousePitchHandler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/MousePitchHandler/)
        -   [MouseRollHandler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/MouseRollHandler/)

##### Index

### Properties[](#properties)

[contextmenu?](#contextmenu) [dblclick?](#dblclick) [dragEnd](#dragend) [dragMove](#dragmove) [dragStart](#dragstart) [keydown?](#keydown) [keyup?](#keyup) [mousedown?](#mousedown) [mousemove?](#mousemove) [mousemoveWindow?](#mousemovewindow) [mouseup?](#mouseup) [mouseupWindow?](#mouseupwindow) [renderFrame?](#renderframe) [touchcancel?](#touchcancel) [touchend?](#touchend) [touchmove?](#touchmove) [touchmoveWindow?](#touchmovewindow) [touchstart?](#touchstart) [wheel?](#wheel)

### Methods[](#methods)

[disable](#disable) [enable](#enable) [isActive](#isactive) [isEnabled](#isenabled) [reset](#reset)

## Properties[](#properties-1)

### `Optional` `Readonly`contextmenu[](#contextmenu)

contextmenu?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[contextmenu](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#contextmenu)

### `Optional` `Readonly`dblclick[](#dblclick)

dblclick?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[dblclick](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#dblclick)

### dragEnd[](#dragend)

dragEnd: (e: [E](#e)) \=> void

### dragMove[](#dragmove)

dragMove: (e: [E](#e), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [T](#t)

### dragStart[](#dragstart)

dragStart: (e: [E](#e), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void

### `Optional` `Readonly`keydown[](#keydown)

keydown?: (e: [KeyboardEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.KeyboardEvent/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[keydown](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#keydown)

### `Optional` `Readonly`keyup[](#keyup)

keyup?: (e: [KeyboardEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.KeyboardEvent/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[keyup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#keyup)

### `Optional` `Readonly`mousedown[](#mousedown)

mousedown?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[mousedown](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#mousedown)

### `Optional` `Readonly`mousemove[](#mousemove)

mousemove?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[mousemove](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#mousemove)

### `Optional` `Readonly`mousemoveWindow[](#mousemovewindow)

mousemoveWindow?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[mousemoveWindow](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#mousemovewindow)

### `Optional` `Readonly`mouseup[](#mouseup)

mouseup?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[mouseup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#mouseup)

### `Optional` `Readonly`mouseupWindow[](#mouseupwindow)

mouseupWindow?: (e: [MouseEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.MouseEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[mouseupWindow](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#mouseupwindow)

### `Optional` `Readonly`renderFrame[](#renderframe)

renderFrame?: () \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

`renderFrame` is the only non-dom event. It is called during render frames and can be used to smooth camera changes (see scroll handler).

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[renderFrame](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#renderframe)

### `Optional` `Readonly`touchcancel[](#touchcancel)

touchcancel?: (  
    e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
    points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
    mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[touchcancel](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#touchcancel)

### `Optional` `Readonly`touchend[](#touchend)

touchend?: (  
    e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
    points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
    mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[touchend](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#touchend)

### `Optional` `Readonly`touchmove[](#touchmove)

touchmove?: (  
    e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
    points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
    mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[touchmove](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#touchmove)

### `Optional` `Readonly`touchmoveWindow[](#touchmovewindow)

touchmoveWindow?: (  
    e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
    points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
    mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[touchmoveWindow](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#touchmovewindow)

### `Optional` `Readonly`touchstart[](#touchstart)

touchstart?: (  
    e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
    points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
    mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[touchstart](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#touchstart)

### `Optional` `Readonly`wheel[](#wheel)

wheel?: (e: [WheelEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WheelEvent/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)) \=> void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)

Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[wheel](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#wheel)

## Methods[](#methods-1)

### disable[](#disable)

-   disable(): void[](#disable-1)
    
    #### Returns void
    
    Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[disable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#disable)
    

### enable[](#enable)

-   enable(): void[](#enable-1)
    
    #### Returns void
    
    Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[enable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#enable)
    

### isActive[](#isactive)

-   isActive(): boolean[](#isactive-1)
    
    This is used to indicate if the handler is currently active or not. In case a handler is active, it will block other handlers from getting the relevant events. There is an allow list of handlers that can be active at the same time, which is configured when adding a handler.
    
    #### Returns boolean
    
    Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[isActive](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#isactive)
    

### isEnabled[](#isenabled)

-   isEnabled(): boolean[](#isenabled-1)
    
    #### Returns boolean
    
    Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[isEnabled](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#isenabled)
    

### reset[](#reset)

-   reset(): void[](#reset-1)
    
    `reset` can be called by the manager at any time and must reset everything to it's original state
    
    #### Returns void
    
    Inherited from [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[reset](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#reset)
