📜  光滑的悬停 css 不起作用 - Javascript (1)

📅  最后修改于: 2023-12-03 15:07:03.472000             🧑  作者: Mango

光滑的悬停 CSS 不起作用 - JavaScript

最近我遇到了一个问题,我尝试使用 CSS 来制作一个光滑的悬停效果,但是它却没有起作用。经过一番研究后,我发现是因为我需要使用 JavaScript 来实现这个效果。

问题描述

我想要制作一个鼠标悬停在按钮上时,按钮会变得光滑的效果。我的 CSS 代码如下:

button:hover {
  background-color: #F9F9F9;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
  border-radius: 10px;
  transition: all 0.3s ease-in-out;
}

但是,这个效果并没有起作用。

解决方法

我使用了以下 JavaScript 代码来解决这个问题:

const button = document.querySelector('button');
button.addEventListener('mouseenter', () => {
  button.style.backgroundColor = '#F9F9F9';
  button.style.boxShadow = '0px 4px 4px rgba(0, 0, 0, 0.25)';
  button.style.borderRadius = '10px';
  button.style.transition = 'all 0.3s ease-in-out';
});
button.addEventListener('mouseleave', () => {
  button.style.backgroundColor = '';
  button.style.boxShadow = '';
  button.style.borderRadius = '';
  button.style.transition = '';
});

这段代码使用了 querySelector 方法来获取页面中的按钮元素,然后使用 addEventListener 来添加 mouseentermouseleave 事件监听器。当鼠标悬停在按钮上时,会触发 mouseenter 事件,然后我们会设置元素的样式以实现光滑的悬停效果。当鼠标离开按钮时,会触发 mouseleave 事件,然后我们会将元素的样式重置为默认值。

总结

如果你想要在网页中实现一些高级的效果,有时使用 CSS 是不够的。JavaScript 可以帮助我们在网页中添加高级的交互效果。在这个问题中,我使用了 JavaScript 来解决 CSS 不起作用的问题,并成功地实现了光滑的悬停效果。