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

为什么此JavaScript/CSS动画仅对第一个圆形元素生效,其余元素无响应?

问题根源

你编写的代码中使用document.querySelector('.circle')选择元素,该API仅会返回页面内第一个匹配.circle类名的DOM节点,其余圆形元素没有被选中、也没有绑定鼠标事件,因此只有第一个圆形可以触发过渡效果。同时你代码中判断类名是否存在的逻辑属于多余代码,classList.add、classList.remove方法会自动处理重复添加/移除类名的场景,不会抛出异常。

修复方案

将选择器替换为document.querySelectorAll('.circle')获取所有圆形元素,遍历每个元素分别绑定事件即可。

修复后的JavaScript代码
// 获取所有匹配类名的圆形元素
const circles = document.querySelectorAll('.circle')

// 遍历每个元素分别绑定鼠标事件
circles.forEach(circle => {
  circle.addEventListener('mouseenter', () => {
    circle.classList.add('hover')
  })

  circle.addEventListener('mouseleave', () => {
    circle.classList.remove('hover')
  })
})

原有CSS、HTML代码无需调整,替换JS代码后所有圆形元素即可正常触发过渡动画。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:54:03