# Class: PointerInteraction

This documentation is for OpenLayers v10.9.0. The latest is v.

## ol/interaction/Pointer~PointerInteraction

    import PointerInteraction from 'ol/interaction/Pointer.js';

Base class that calls user-defined functions on `down`, `move` and `up` events. This class also manages "drag sequences".

When the `handleDownEvent` user function returns `true` a drag sequence is started. During a drag sequence the `handleDragEvent` user function is called on `move` events. The drag sequence ends when the `handleUpEvent` user function is called and returns `false`.

#### new PointerInteraction(options)

interaction/Pointer.js, line 45

  Name | Type | Description
  --- | --- | ---
  `handleDownEvent` | function | undefined | Function handling "down" events. If the function returns `true` then a drag sequence is started.
  `handleDragEvent` | function | undefined | Function handling "drag" events. This function is called on "move" events during a drag sequence.
  `handleEvent` | function | undefined | Method called by the map to notify the interaction that a browser event was dispatched to the map. The function may return `false` to prevent the propagation of the event to other interactions in the map's interactions chain.
  `handleMoveEvent` | function | undefined | Function handling "move" events. This function is called on "move" events. This functions is also called during a drag sequence, so during a drag sequence both the `handleDragEvent` function and this function are called. If `handleDownEvent` is defined and it returns true this function will not be called during a drag sequence.
  `handleUpEvent` | function | undefined | Function handling "up" events. If the function returns `false` then the current drag sequence is stopped.
  `stopDown` | function | undefined | Should the down event be propagated to other interactions, or should be stopped?

  ##### Fires:

  - `change` (BaseEvent) - Generic change event. Triggered when the revision counter is increased.
  - `change:active` (ObjectEvent)
  - `error` (BaseEvent) - Generic error event. Triggered when an error occurs.
  - `propertychange` (ObjectEvent) - Triggered when a property is changed.

### Subclasses

- DragBox
- DragPan
- DragRotateAndZoom
- DragRotate
- Draw
- Extent
- Modify
- PinchRotate
- PinchZoom
- Snap
- Translate

### Extends

- Interaction

### Observable Properties

Name | Type | Settable | ObjectEvent type | Description
--- | --- | --- | --- | ---
`active` | boolean | yes | `change:active` | `true` if the interaction is active, `false` otherwise.

### Methods

#### changed() inherited

Observable.js, line 68

  Increases the revision counter and dispatches a 'change' event.

#### dispatchEvent(event){boolean | undefined} inherited

events/Target.js, line 85

  Dispatches an event and calls all listeners listening for events of this type. The event parameter can either be a string or an Object with a `type` property.

  Name | Type | Description
  --- | --- | ---
  `event` | BaseEvent | string | Event object.

  ##### Returns:

  `false` if anyone called preventDefault on the event object or if any of the listeners returned false.

#### get(key){*} inherited

Object.js, line 136

  Gets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.

  ##### Returns:

  Value.

#### getActive(){boolean} inherited

interaction/Interaction.js, line 82

  Return whether the interaction is currently active.

  ##### Returns:

  `true` if the interaction is active, `false` otherwise.

#### getKeys(){Array.<string>} inherited

Object.js, line 149

  Get a list of object property names.

  ##### Returns:

  List of property names.

#### getMap(){Map | null} inherited

interaction/Interaction.js, line 91

  Get the map associated with this interaction.

  ##### Returns:

  Map.

#### getPointerCount(){number}

interaction/Pointer.js, line 95

  Returns the current number of pointers involved in the interaction, e.g. `2` when two fingers are used.

  ##### Returns:

  The number of pointers.

#### getProperties(){NoInfer.<Properties>} inherited

Object.js, line 158

  Get an object of all property names and values.

  ##### Returns:

  Object.

#### getRevision(){number} inherited

Observable.js, line 79

  Get the version number for this object. Each time the object is modified, its version number will be incremented.

  ##### Returns:

  Revision.

#### handleEvent(mapBrowserEvent){boolean}

interaction/Pointer.js, line 125

  Handles the `map browser event` and may call into other functions, if event sequences like e.g. 'drag' or 'down-up' etc. are detected.

  Name | Type | Description
  --- | --- | ---
  `mapBrowserEvent` | MapBrowserEvent | Map browser event.

  ##### Returns:

  `false` to stop event propagation.

#### on(type, listener){EventsKey | Array<EventsKey>} inherited

Observable.js, line 152

  Listen for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### once(type, listener){EventsKey | Array<EventsKey>} inherited

Observable.js, line 164

  Listen once for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### set(key, value, silent) inherited

Object.js, line 218

  Sets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `value` | * | Value.
  `silent` | boolean | undefined | Update without triggering an event.

#### setActive(active) inherited

interaction/Interaction.js, line 111

  Activate or deactivate the interaction.

  Name | Type | Description
  --- | --- | ---
  `active` | boolean | Active.

#### setProperties(values, silent) inherited

Object.js, line 238

  Sets a collection of key-value pairs. Note that this changes any existing properties and adds new ones (it does not remove any existing properties).

  Name | Type | Description
  --- | --- | ---
  `values` | Partial.<NoInfer.<Properties>> | Values.
  `silent` | boolean | undefined | Update without triggering an event.

#### un(type, listener) inherited

Observable.js, line 173

  Unlisten for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.

#### unset(key, silent) inherited

Object.js, line 262

  Unsets a property.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `silent` | boolean | undefined | Unset without triggering an event.