Mouse Events
Handle mouse interaction events
BeginnerTopic: Events Programs
JavaScript Mouse Events Program
This program helps you to learn the fundamental structure and syntax of JavaScript programming.
// Method 1: Click events
const button = document.getElementById('myButton');
button.addEventListener('click', function(e) {
console.log('Clicked');
});
button.addEventListener('dblclick', function(e) {
console.log('Double clicked');
});
// Method 2: Mouse position
const element = document.getElementById('myElement');
element.addEventListener('mousemove', function(e) {
console.log('X:', e.clientX, 'Y:', e.clientY);
console.log('Page X:', e.pageX, 'Page Y:', e.pageY);
console.log('Offset X:', e.offsetX, 'Offset Y:', e.offsetY);
});
// Method 3: Mouse enter/leave
element.addEventListener('mouseenter', function(e) {
console.log('Mouse entered');
e.target.style.backgroundColor = 'yellow';
});
element.addEventListener('mouseleave', function(e) {
console.log('Mouse left');
e.target.style.backgroundColor = '';
});
// Method 4: Mouse over/out (bubbles)
element.addEventListener('mouseover', function(e) {
console.log('Mouse over');
});
element.addEventListener('mouseout', function(e) {
console.log('Mouse out');
});
// Method 5: Mouse down/up
element.addEventListener('mousedown', function(e) {
console.log('Mouse button pressed:', e.button);
// 0: left, 1: middle, 2: right
});
element.addEventListener('mouseup', function(e) {
console.log('Mouse button released');
});
// Method 6: Context menu (right click)
element.addEventListener('contextmenu', function(e) {
e.preventDefault();
console.log('Right click prevented');
// Show custom context menu
});
// Method 7: Mouse buttons
element.addEventListener('mousedown', function(e) {
if (e.button === 0) {
console.log('Left button');
} else if (e.button === 1) {
console.log('Middle button');
} else if (e.button === 2) {
console.log('Right button');
}
// Check which buttons are pressed
console.log('Buttons:', e.buttons);
// 1: left, 2: right, 4: middle
});
// Method 8: Drag detection
let isDragging = false;
element.addEventListener('mousedown', function(e) {
isDragging = true;
console.log('Drag started');
});
element.addEventListener('mousemove', function(e) {
if (isDragging) {
console.log('Dragging at:', e.clientX, e.clientY);
}
});
element.addEventListener('mouseup', function(e) {
if (isDragging) {
isDragging = false;
console.log('Drag ended');
}
});Output
// Output depends on mouse interaction
Understanding Mouse Events
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
Let us now understand every line and the components of the above program.
Note: To write and run JavaScript programs, you need to set up the local environment on your computer. Refer to the complete article Setting up JavaScript Development Environment. If you do not want to set up the local environment on your computer, you can also use online IDE to write and run your JavaScript programs.