Tooltip extends Floater
Assign a message to show on hover.
Example
Tooltip.delegate(document.body, { placement: 'top' })<button data-tooltip="Save your work" data-tooltip-placement="bottom">Save</button>new Tooltip({
anchor: document.querySelector('#hi-button'),
content: "Hello World"
}).show()Constructor
new Tooltip(options)
options
:
Object
optionaltimeout
:
number
optionalms to wait until hiding after mouseout
scope
:
string
optionalshowing a tooltip will hide all other tooltips of same scope
anchor
:
HTMLElement
element to anchor positioning to
container
:
string
|
HTMLElement
optionalelement to append floater to. If String, then used as selector for this.closest(selector)
placement
:
string
optionalhow the floater is anchored, e.g. "top", "top-start", "top-end", "left", "left-start"...
strategy
:
string
optionalhow the floater is positioned in the document. "absolute" or "fixed"
flip
:
boolean
|
Object
optionalSee https://floating-ui.com/docs/flip, defaults to false in favor of autoPlacement
arrow
:
boolean
|
number
optionalTrue to show default size, or number in pixels
removeOnBlur
:
boolean
optionalhide floater on outside click/focus or escape key
onShow
:
function
optionalevent listener for show (cancellable, fires before showing)
onShown
:
function
optionalevent listener for shown (fires after showing)
onHide
:
function
optionalevent listener for hide (cancellable, fires before hiding)
onHidden
:
function
optionalevent listener for hidden (fires after hiding)
content
:
string
|
HTMLElement
|
Array
|
Object
optionalcontent to append to element. Passed to Dolla's content
Static Properties
Attributes settable via constructor options. Each key is the attribute name and the value is a schema object describing how to handle it.
Example
static assignableAttributes = {
anchor: { type: 'HTMLElement', default: null, null: true },
placement: { type: 'string', default: 'bottom', null: false },
enabled: { type: 'boolean', default: true, null: false },
data: { type: 'array', default: [], null: false }
}Properties
type
:
string
|
Array.<string>
expected type(s): 'string', 'number', 'boolean', 'object', 'array', 'function', or a class/element name like 'HTMLElement'
default
:
*
default value when none is provided
null
:
boolean
whether null is an acceptable value
load
:
function
optionaloptional transform applied when reading the attribute value
Methods overridable via constructor options
Methods to auto-bind to this
Event names that can be bound via onEventName constructor options
CSS injected once per component via adoptedStyleSheets
CSS @layer name used to wrap the component's styles when injected
via adoptedStyleSheets. Set to a falsy value to disable layering.
Attributes to observe for changes. Triggers changed(attribute, was, now) and [attribute]Changed(was, now) callbacks.
Instance Methods
Listen for events on another element, automatically cleaned up when this component disconnects
Parameters
element
:
HTMLElement
element to listen on
eventType
:
string
event type
args
:
*
additional arguments passed to addEventListener
Called every time an observed attribute changes. Attribute must be listed in static watch.
Parameters
attribute
:
string
the attribute that changed
was
:
*
previous value
now
:
*
new value
Called when element is connected to the DOM
Called when element is disconnected from the DOM
Called once per instantiation, but only after element is connected to the DOM
Remove element. Fires remove, calls optional callback, removes from DOM, then fires removed.
Parameters
callback
:
function
optionalasync callback called between remove and removed
Returns
KompElement
this
Toggle the floater visibility
Parameters
shouldHide
:
boolean
optionalexplicitly show or hide. If omitted, toggles based on current visibility.
Returns
Floater
this
Trigger an event on this element
Parameters
eventName
:
string
event name to trigger
args
:
*
additional arguments
Static Methods
Delegate tooltip behavior from a container element. A single set of
listeners is attached to container; any descendant with a
data-tooltip attribute (or title, which is stripped to suppress
the browser's native tooltip) will show a Tooltip on mouseover/focus.
Per-element options are read from data-tooltip-* attributes
(e.g. data-tooltip-placement="bottom").
Parameters
container
:
HTMLElement
element to delegate from
defaults
:
Object
optionaldefault options merged into each tooltip
Returns
function
cleanup function that removes the delegation listeners
Events
connect
Fired before the element is connected to the DOM (cancellable)
Fired after the element is connected to the DOM and initialized
Fired before the element is disconnected from the DOM (cancellable)
Fired after the element is disconnected from the DOM
hide
Fired before the floater is hidden (cancellable)
remove
Fired before the element is removed (cancellable)
removed
Fired after the element is removed
show
Fired before the floater is shown (cancellable)
shown
Fired after the floater is shown