首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在悬停时更改按钮的文本

在悬停时更改按钮的文本
EN

Stack Overflow用户
提问于 2022-03-17 16:06:37
回答 2查看 565关注 0票数 1

我想从antd的设计中更改按钮上悬停在react按钮上的文本,我想从antd设计中更改按钮上的文本悬停按钮上的文本。

代码语言:javascript
复制
Button
    <div className={ status == "verified" ?  `${styles.btn1} ${styles.btn1Contact}` :  `${styles.btn} ${styles.btnContact}`} >
        <Button className={ status == "verified" ?  `${styles.btnremove}` :  `${styles.btnremove1}`}
        > {status} </Button>
        </div>

我就是这样做的

代码语言:javascript
复制
 &:hover {
   
  }

但是没有什么改变

styles.btn:

代码语言:javascript
复制
.btn {
  display: flex !important;

 
 {
    margin-top: 10px;
  }
  &:hover {
  
    color: $fade-color;
  }
  &:focus {
  
    color: $fade-color;
  }
 
  }
}

styles.btn1:

代码语言:javascript
复制
.btn1 {
 
  @media only screen and (max-width: $max-size-2) {
    margin-top: 10px;
  }

 
  }
}

styles.btn1

代码语言:javascript
复制
.btnremove {
  border: 0px !important;

}

styles.btn:

代码语言:javascript
复制
.btn {


  justify-content: center;
}
EN

回答 2

Stack Overflow用户

发布于 2022-03-17 16:55:19

以下是解决您的问题的JS解决方案。我们使用的是默认为false的状态。当悬停按钮(触发onMouseEnter)时,我们将其设置为true。当离开按钮(onMouseLeave被触发)时,我们将其设置为false

这使我们能够拥有一个值isHovering,它包含一个布尔值,即在悬停按钮时为true,而在不悬停该按钮时为false。然后,我们只需要在模板中引用这一点。

isHoveringtrue时,将显示-> Hovering。如果没有,将显示-> Not Hovering

代码语言:javascript
复制
const Example = () => {
  const [isHovering, setHover] = useState(false);

  return (
    <Button
      className={
        status == "verified" ? `${styles.btnremove}` : `${styles.btnremove1}`
      }
      onMouseEnter={() => setHover(true)}
      onMouseLeave={() => setHover(false)}
    >
      {isHovering ? `Hovering` : `Not Hovering`}
    </Button>
  );
};

这将是CSS (SCSS)的唯一解决方案。这几乎与JS示例的行为相同。但是在这里,我们呈现两个span元素,并使用CSS显示/隐藏它们,而不是在JS中使用状态。

代码语言:javascript
复制
.btnremove,
.btnremove1 {
  // ... your styles

  .hover-content {
    display: none;
  }

  &:hover {
    .hover-content {
      display: initial;
    }

    .default-content {
      display: none;
    }
  }
}
代码语言:javascript
复制
const Example2 = () => {
  return (
    <Button
      className={
        status == "verified" ? `${styles.btnremove}` : `${styles.btnremove1}`
      }
    >
      <span className="hover-content">Hovering</span>
      <span className="default-content">Not Hovering</span>
    </Button>
  );
};

这两种解决方案都是可以获得的。

票数 4
EN

Stack Overflow用户

发布于 2022-03-17 16:52:32

:before (或:after)中的CSS更改内容。悬停只适用于此顺序:hover:before

代码语言:javascript
复制
.btn:before {
  content:'Init value';
}
.btn:hover:before {
  content:'Hover value';
}
代码语言:javascript
复制
 <button class="btn"></button>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71515554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档