You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过点击禁用CSS Hover效果并再次启用?

点击按钮时禁用CSS hover效果,再次悬停恢复的实现方案

核心思路是通过自定义CSS类来覆盖:hover伪类的样式(无法直接禁用:hover伪类),具体实现步骤如下:

1. 调整CSS样式

新增一个no-hover类,当按钮拥有这个类时,取消hover状态下的缩放效果:

#header nav img:hover {
  transform: scale(1.2);
}

/* 新增:禁用hover效果的类 */
#header nav img.no-hover:hover {
  transform: none;
}

#log.active{
  display: flex !important;
  animation: fadein .3s !important;
}

2. 修改JavaScript逻辑

先补上你代码中缺失的按钮元素获取语句,再在点击事件中给按钮添加no-hover类,鼠标悬停事件中移除这个类:

// 补上获取按钮元素的代码(原代码遗漏了这行)
let odium = document.getElementById("symbol1");
let logStyle = document.getElementById("log").style;
let levelStyle = document.getElementById("level").style;
let log = document.getElementById("log");
let level = document.getElementById("level");

odium.addEventListener("mouseover", function (event) {
  // 鼠标悬停时移除禁用类,恢复hover效果
  odium.classList.remove('no-hover');
  logStyle.display = "block";
  logStyle.animation = "fadein .3s";
  levelStyle.display = "block";
  levelStyle.animation = "fadein .3s";
}, false);

odium.addEventListener("mouseout", function (event) {
    logStyle.display = "none";
    levelStyle.display = "none";
}, false); 

odium.addEventListener("click", function (event) {
  log.classList.toggle('active');
  level.classList.toggle('active');
  // 点击时添加禁用类,关闭hover效果
  odium.classList.add('no-hover');
}, false);

效果说明

  • 点击按钮后,按钮会带上no-hover类,此时鼠标悬停不会触发缩放效果;
  • 用户再次将鼠标移到按钮上时,mouseover事件会移除no-hover类,hover的缩放效果自动恢复。

内容的提问来源于stack exchange,提问作者mmd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 01:55:34