Class Popup

A popup component.

Example

Create a popup

let popup = new Popup();
// Set an event listener that will fire
// any time the popup is opened
popup.on('open', () => {
console.log('popup was opened');
});

Example

Create a popup

let popup = new Popup();
// Set an event listener that will fire
// any time the popup is closed
popup.on('close', () => {
console.log('popup was closed');
});

Example

let markerHeight = 50, markerRadius = 10, linearOffset = 25;
let popupOffsets = {
'top': [0, 0],
'top-left': [0,0],
'top-right': [0,0],
'bottom': [0, -markerHeight],
'bottom-left': [linearOffset, (markerHeight - markerRadius + linearOffset) * -1],
'bottom-right': [-linearOffset, (markerHeight - markerRadius + linearOffset) * -1],
'left': [markerRadius, (markerHeight - markerRadius) * -1],
'right': [-markerRadius, (markerHeight - markerRadius) * -1]
};
let popup = new Popup({offset: popupOffsets, className: 'my-class'})
.setLngLat(e.lngLat)
.setHTML("<h1>Hello World!</h1>")
.setMaxWidth("300px")
.addTo(map);

See

Events

Event open of type Event will be fired when the popup is opened manually or programmatically.

Event close of type Event will be fired when the popup is closed manually or programmatically.

Hierarchy (view full)

Constructors

  • Parameters

    Returns Popup

Methods

  • Adds a CSS class to the popup container element.

    Parameters

    • className: string

      Non-empty string with CSS class name to add to popup container

    Returns Popup

    Example

    let popup = new Popup()
    popup.addClassName('some-class')
  • Returns the Popup's HTML element.

    Returns HTMLElement

    element

    Example

    Change the Popup element's font size

    let popup = new Popup()
    .setLngLat([-96, 37.8])
    .setHTML("<p>Hello World!</p>")
    .addTo(map);
    let popupElem = popup.getElement();
    popupElem.style.fontSize = "25px";
  • Returns the geographical location of the popup's anchor.

    The longitude of the result may differ by a multiple of 360 degrees from the longitude previously set by setLngLat because Popup wraps the anchor longitude across copies of the world to keep the popup on screen.

    Returns LngLat

    The geographical location of the popup's anchor.

  • Returns the popup's maximum width.

    Returns string

    The maximum width of the popup.

  • Returns boolean

    true if the popup is open, false if it is closed.

  • Returns a true if this instance of Evented or any forwardeed instances of Evented have a listener for the specified type.

    Parameters

    • type: string

      The event type

    Returns boolean

    true if there is at least one registered listener for specified event type, false otherwise

  • Removes a previously registered event listener.

    Parameters

    • type: string

      The event type to remove listeners for.

    • listener: Listener

      The listener function to remove.

    Returns Popup

  • Adds a listener to a specified event type.

    Parameters

    • type: string

      The event type to add a listen for.

    • listener: Listener

      The function to be called when the event is fired. The listener function is called with the data object passed to fire, extended with target and type properties.

    Returns this

  • Adds a listener that will be called only once to a specified event type.

    The listener will be called first time the event fires after the listener is registered.

    Parameters

    • type: string

      The event type to listen for.

    • Optional listener: Listener

      The function to be called when the event is fired the first time.

    Returns Promise<any> | Popup

    this or a promise if a listener is not provided

  • Removes the popup from the map it has been added to.

    Returns this

    Example

    let popup = new Popup().addTo(map);
    popup.remove();
  • Removes a CSS class from the popup container element.

    Parameters

    • className: string

      Non-empty string with CSS class name to remove from popup container

    Returns Popup

    Example

    let popup = new Popup()
    popup.removeClassName('some-class')
  • Sets the popup's content to the element provided as a DOM node.

    Parameters

    • htmlNode: Node

      A DOM node to be used as content for the popup.

    Returns this

    Example

    Create an element with the popup content

    let div = document.createElement('div');
    div.innerHTML = 'Hello, world!';
    let popup = new Popup()
    .setLngLat(e.lngLat)
    .setDOMContent(div)
    .addTo(map);
  • Bubble all events fired by this instance of Evented to this parent instance of Evented.

    Parameters

    • Optional parent: Evented
    • Optional data: any

    Returns Popup

  • Sets the geographical location of the popup's anchor, and moves the popup to it. Replaces trackPointer() behavior.

    Parameters

    • lnglat: LngLatLike

      The geographical location to set as the popup's anchor.

    Returns this

  • Sets the popup's maximum width. This is setting the CSS property max-width. Available values can be found here: https://developer.mozilla.org/en-US/docs/Web/CSS/max-width

    Parameters

    • maxWidth: string

      A string representing the value for the maximum width.

    Returns this

  • Sets the popup's offset.

    Parameters

    • Optional offset: Offset

      Sets the popup's offset.

    Returns this

  • Set the option to allow subpixel positioning of the popup by passing a boolean

    Parameters

    • value: boolean

      When boolean is true, subpixel positioning is enabled for the popup.

    Returns void

    Example

    let popup = new Popup()
    popup.setSubpixelPositioning(true);
  • Sets the popup's content to a string of text.

    This function creates a Text node in the DOM, so it cannot insert raw HTML. Use this method for security against XSS if the popup content is user-provided.

    Parameters

    • text: string

      Textual content for the popup.

    Returns this

    Example

    let popup = new Popup()
    .setLngLat(e.lngLat)
    .setText('Hello, world!')
    .addTo(map);
  • Add or remove the given CSS class on the popup container, depending on whether the container currently has that class.

    Parameters

    • className: string

      Non-empty string with CSS class name to add/remove

    Returns boolean

    if the class was removed return false, if class was added, then return true, undefined if there is no container

    Example

    let popup = new Popup()
    popup.toggleClassName('toggleClass')
  • Tracks the popup anchor to the cursor position on screens with a pointer device (it will be hidden on touchscreens). Replaces the setLngLat behavior. For most use cases, set closeOnClick and closeButton to false.

    Returns this

    Example

    let popup = new Popup({ closeOnClick: false, closeButton: false })
    .setHTML("<h1>Hello World!</h1>")
    .trackPointer()
    .addTo(map);