Mouse Events in JavaScript
Handle mouse interaction events
BeginnerEvents ProgramsExample 6 of 10
mouse-events.js
1// Method 1: Click events2const button = document.getElementById('myButton');34button.addEventListener('click', function(e) {5 console.log('Clicked');6});78button.addEventListener('dblclick', function(e) {9 console.log('Double clicked');10});1112// Method 2: Mouse position13const element = document.getElementById('myElement');1415element.addEventListener('mousemove', function(e) {16 console.log('X:', e.clientX, 'Y:', e.clientY);17 console.log('Page X:', e.pageX, 'Page Y:', e.pageY);18 console.log('Offset X:', e.offsetX, 'Offset Y:', e.offsetY);19});2021// Method 3: Mouse enter/leave22element.addEventListener('mouseenter', function(e) {23 console.log('Mouse entered');24 e.target.style.backgroundColor = 'yellow';25});2627element.addEventListener('mouseleave', function(e) {28 console.log('Mouse left');29 e.target.style.backgroundColor = '';30});3132// Method 4: Mouse over/out (bubbles)33element.addEventListener('mouseover', function(e) {34 console.log('Mouse over');35});3637element.addEventListener('mouseout', function(e) {38 console.log('Mouse out');39});4041// Method 5: Mouse down/up42element.addEventListener('mousedown', function(e) {43 console.log('Mouse button pressed:', e.button);44 // 0: left, 1: middle, 2: right45});4647element.addEventListener('mouseup', function(e) {48 console.log('Mouse button released');49});5051// Method 6: Context menu (right click)52element.addEventListener('contextmenu', function(e) {53 e.preventDefault();54 console.log('Right click prevented');55 // Show custom context menu56});5758// Method 7: Mouse buttons59element.addEventListener('mousedown', function(e) {60 if (e.button === 0) {61 console.log('Left button');62 } else if (e.button === 1) {63 console.log('Middle button');64 } else if (e.button === 2) {65 console.log('Right button');66 }6768 // Check which buttons are pressed69 console.log('Buttons:', e.buttons);70 // 1: left, 2: right, 4: middle71});7273// Method 8: Drag detection74let isDragging = false;7576element.addEventListener('mousedown', function(e) {77 isDragging = true;78 console.log('Drag started');79});8081element.addEventListener('mousemove', function(e) {82 if (isDragging) {83 console.log('Dragging at:', e.clientX, e.clientY);84 }85});8687element.addEventListener('mouseup', function(e) {88 if (isDragging) {89 isDragging = false;90 console.log('Drag ended');91 }92});
Output
// Output depends on mouse interaction
What's going on
Mouse events handle pointer interactions.
Event Types
click: Single click
dblclick: Double click
mousedown/mouseup: Button press/release
mousemove: Mouse movement
mouseenter/mouseleave: Enter/leave element
mouseover/mouseout: Over/out (bubbles)
contextmenu: Right click
Event Properties
clientX/clientY: Viewport coordinates
pageX/pageY: Document coordinates
offsetX/offsetY: Element coordinates
button: Which button (0=left, 1=middle, 2=right)
buttons: All pressed buttons
Use Cases
Interactive UI
Drag and drop
Hover effects
Click tracking
Best Practices
Use mouseenter/leave for hover
Prevent contextmenu for custom menus
Track drag state with flags