当前位置:首页 > JavaScript

js实现鼠标

2026-03-14 07:40:58JavaScript

鼠标事件监听

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

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

鼠标位置获取

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

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事件。通过记录初始位置和计算偏移量,实现元素的拖拽移动。

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事件可以监听鼠标滚轮的滚动方向,实现页面缩放或滚动控制。

js实现鼠标

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

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

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现dh

js实现dh

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