当前位置:首页 > JavaScript

js实现 hover

2026-04-06 19:22:04JavaScript

实现 hover 效果的方法

在 JavaScript 中实现 hover 效果可以通过监听鼠标事件或结合 CSS 伪类来实现。以下是几种常见的方法:

使用 CSS 伪类

CSS 的 :hover 伪类是最简单的方式,无需 JavaScript:

.element:hover {
  background-color: #f0f0f0;
  color: #000;
}

使用 JavaScript 事件监听

通过 JavaScript 监听 mouseentermouseleave 事件动态修改样式:

const element = document.querySelector('.element');
element.addEventListener('mouseenter', () => {
  element.style.backgroundColor = '#f0f0f0';
  element.style.color = '#000';
});
element.addEventListener('mouseleave', () => {
  element.style.backgroundColor = '';
  element.style.color = '';
});

动态添加/移除 CSS 类

结合 CSS 和 JavaScript,通过添加或移除类名实现 hover 效果:

.element-hover {
  background-color: #f0f0f0;
  color: #000;
}
const element = document.querySelector('.element');
element.addEventListener('mouseenter', () => {
  element.classList.add('element-hover');
});
element.addEventListener('mouseleave', () => {
  element.classList.remove('element-hover');
});

使用 onmouseoveronmouseout 属性

直接在 HTML 元素上绑定事件:

<div 
  class="element" 
  onmouseover="this.style.backgroundColor='#f0f0f0'" 
  onmouseout="this.style.backgroundColor=''">
  Hover me
</div>

使用 CSS 变量和 JavaScript

通过 JavaScript 动态修改 CSS 变量实现 hover 效果:

js实现 hover

.element {
  --hover-bg: #f0f0f0;
  --hover-color: #000;
}
.element:hover {
  background-color: var(--hover-bg);
  color: var(--hover-color);
}
const element = document.querySelector('.element');
element.style.setProperty('--hover-bg', '#f0f0f0');
element.style.setProperty('--hover-color', '#000');

注意事项

  • CSS 伪类性能更好,优先推荐使用。
  • JavaScript 方式适合需要动态控制或复杂交互的场景。
  • 避免在频繁触发的回调中执行复杂逻辑,可能导致性能问题。

标签: jshover
分享给朋友:

相关文章

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…