当前位置:首页 > JavaScript

js实现鼠标

2026-03-14 07:40:58JavaScript

鼠标事件监听

在JavaScript中,可以通过addEventListener方法监听鼠标事件。常见的事件包括clickmousedownmouseupmousemove等。

document.addEventListener('click', function(event) {
    console.log('鼠标点击位置:', event.clientX, event.clientY);
});

鼠标位置获取

通过事件对象的clientXclientY属性可以获取鼠标相对于视口的坐标。如果需要相对于文档的坐标,可以使用pageXpageY

js实现鼠标

document.addEventListener('mousemove', function(event) {
    console.log('当前鼠标位置:', event.pageX, event.pageY);
});

鼠标悬停效果

使用mouseovermouseout事件可以实现悬停效果。结合CSS的:hover伪类,可以增强交互体验。

const element = document.getElementById('hover-element');
element.addEventListener('mouseover', function() {
    this.style.backgroundColor = 'yellow';
});
element.addEventListener('mouseout', function() {
    this.style.backgroundColor = '';
});

拖拽功能实现

拖拽功能通常需要结合mousedownmousemovemouseup事件。通过记录初始位置和计算偏移量,实现元素的拖拽移动。

js实现鼠标

const draggable = document.getElementById('draggable');
let isDragging = false;
let offsetX, offsetY;

draggable.addEventListener('mousedown', function(e) {
    isDragging = true;
    offsetX = e.clientX - this.getBoundingClientRect().left;
    offsetY = e.clientY - this.getBoundingClientRect().top;
});

document.addEventListener('mousemove', function(e) {
    if (!isDragging) return;
    draggable.style.left = (e.clientX - offsetX) + 'px';
    draggable.style.top = (e.clientY - offsetY) + 'px';
});

document.addEventListener('mouseup', function() {
    isDragging = false;
});

鼠标右键菜单

通过监听contextmenu事件并阻止默认行为,可以自定义右键菜单。

document.addEventListener('contextmenu', function(e) {
    e.preventDefault();
    const menu = document.getElementById('custom-menu');
    menu.style.left = e.clientX + 'px';
    menu.style.top = e.clientY + 'px';
    menu.style.display = 'block';
});

document.addEventListener('click', function() {
    document.getElementById('custom-menu').style.display = 'none';
});

鼠标滚轮事件

使用wheel事件可以监听鼠标滚轮的滚动方向,实现页面缩放或滚动控制。

document.addEventListener('wheel', function(e) {
    if (e.deltaY < 0) {
        console.log('向上滚动');
    } else {
        console.log('向下滚动');
    }
});

标签: 鼠标js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…