Skip to main content
100%

Mouseenter

✓ Published0🌍 Public
Mmbostock
Last edited Feb 9, 2016
Created on Mar 26, 2013

A nested set of semi-transparent rectangles demonstrates the practical difference between D3’s mouseenter/mouseleave events and the standard mouseover/mouseout events. Each time the mouse enters a group, a text label with the event name (e.g., "mouseenter" or "mouseover") fades in at the cursor position, while moving between nested rectangles triggers only the mouseover/mouseout pair. The code attaches these four handlers to a recursively nested SVG `<g>` element, uses `d3.mouse` for cursor coordinates, and animates the labels’ opacity to zero via D3’s `transition`. A polyfill is mentioned for browsers without native mouseenter support.

AI-generated description

This example demonstrates mouseenter and mouseleave events. Mouseenter and mouseleave events are triggered only when the mouse enters or leaves the parent container; unlike mouseover and mouseout, they are not triggered when the mouse moves between descendant elements. This makes it easier to listen for when the mouse enters a group of elements and avoid unnecessary flickering.

For browsers that do not yet support mouseenter and mouseleave events, D3 provides a polyfill on top of the mouseover and mouseout events.

gpl-3.0 Licensed

Similar vizzes