【问题标题】:Add hover effect to react div using inline styling添加悬停效果以使用内联样式对 div 做出反应
【发布时间】:2019-10-31 22:39:18
【问题描述】:

我有一个圆形的 div,用于显示圆形的 css 属性取自 circle 类。圆形 div 的颜色取自内联样式。这里使用了一个名为Status() 的函数,它将返回一个十六进制颜色代码。圆圈根据我们传递给 Status 函数的状态使用颜色呈现。为了实现悬停效果,我在样式对象中添加了一个 ':hover' 属性,但它不起作用。这是我尝试过的代码。关于如何实现这一目标的任何想法?我需要在鼠标悬停时向圆圈添加边框/发光。

<div
  className="circle"
  style={{
   backgroundColor: Status('new'),
   ':hover': {
     boxShadow: `0px 0px 4px 2px ${Status('complience')}`,
    },
   }}
 />

【问题讨论】:

标签: javascript css reactjs sass


【解决方案1】:

尝试在:hover 之前添加&amp;

这对于内联样式是不可能的,您可能想使用 onMouseEnteronMouseLeave 道具来获取悬停状态并使用它,例如:

class MyComponent extends React.Component {
  state= {
    hover: false,
  }
  handleMouseEnter = () => {
    this.setState({ hover: true });
  }
  handleMouseLeave = () => {
    this.setState({ hover: false });
  }
  render() {
    const { hover } = this.state;
    return(
      <div
        className="circle"
        style={{
          backgroundColor: Status('new'),
          ...(hover && { boxShadow: `0px 0px 4px 2px ${Status('complience')}`}),
        }}
        onMouseEnter={this.handleMouseEnter} // Or onMouseOver
        onMouseLeave={this.handleMouseLeave}
      />
    )
  }
}

替代方案:

【讨论】:

  • 我已经这样做了,但它不起作用。为什么悬停效果在 jsx 中不起作用?
  • @TRomesh 抱歉,内联样式中不允许使用选择器。我编辑了我的答案。
猜你喜欢
  • 2015-11-05
  • 2011-04-17
  • 2018-07-27
  • 2018-11-25
  • 2020-11-26
  • 2023-02-06
  • 2019-04-19
  • 2021-12-01
  • 1970-01-01
相关资源
最近更新 更多