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

ReactJs中实现按钮Hover时显示boxShadow的方法

实现按钮仅在Hover状态显示阴影的两种方法

内联样式没法直接用:hover伪类,所以可以用下面两种方式实现需求:

方法一:使用CSS类(推荐,更易维护)

把样式抽离到CSS文件里,通过伪类控制hover状态的阴影:

  1. 编写CSS样式:
.custom-action-btn {
  float: right;
  margin-bottom: 15px;
  margin-right: 30px;
  background-color: #06ac06;
  border: none;
  box-shadow: none; /* 默认隐藏阴影 */
  transition: box-shadow 0.3s ease; /* 可选:加过渡动画让阴影变化更平滑 */
}

.custom-action-btn:hover {
  box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19);
}
  1. 修改按钮代码,添加类名:
<CButton className="custom-action-btn">
  按钮内容
</CButton>

方法二:使用React状态控制(适合动态场景)

通过组件状态监听鼠标进入/离开事件,动态切换阴影样式:

import { useState } from 'react';

// 在你的组件内部
const [isBtnHovered, setIsBtnHovered] = useState(false);

return (
  <CButton
    style={{
      float: 'right',
      marginBottom: '15px',
      marginRight: '30px',
      backgroundColor: '#06ac06',
      border: 'none',
      // 根据hover状态切换阴影
      boxShadow: isBtnHovered 
        ? '0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19)' 
        : 'none',
      transition: 'box-shadow 0.3s ease' // 可选过渡动画
    }}
    onMouseEnter={() => setIsBtnHovered(true)}
    onMouseLeave={() => setIsBtnHovered(false)}
  >
    按钮内容
  </CButton>
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:25:38