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

如何通过JS脚本触发CSS :active状态实现Simon Says游戏按钮点击效果

实现方案

原生的:active伪类是浏览器控制的交互状态,仅能由用户真实点击操作触发,JS无法直接唤起该状态,你可以用以下两种替代方案实现完全相同的视觉效果:

  • 方案1:新增同名样式类(更推荐,易维护)
    将你的CSS代码调整为同时匹配:active伪类和自定义.active类:
.but:active, .but.active {
  box-shadow: 0 5px #666;
  transform: translateY(4px);
}

需要模拟点击效果时,用JS操作类名即可,示例代码如下:

// 获取目标按钮元素
const targetBtn = document.querySelector('.but');
// 模拟按下状态,添加active类
targetBtn.classList.add('active');
// 300ms后模拟松开,移除active类,时长可根据需求调整
setTimeout(() => {
  targetBtn.classList.remove('active');
}, 300);
  • 方案2:直接操作内联样式(无需修改CSS)
    如果你不想改动原有CSS代码,也可以直接用JS给按钮添加内联样式实现效果:
const targetBtn = document.querySelector('.but');
// 模拟按下
targetBtn.style.boxShadow = '0 5px #666';
targetBtn.style.transform = 'translateY(4px)';
// 模拟松开
setTimeout(() => {
  targetBtn.style.boxShadow = '';
  targetBtn.style.transform = '';
}, 300);

以上两种方案都可以完美适配Simon Says游戏的序列展示需求,你只需要按序列顺序依次给对应颜色按钮执行上述逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:54:08