搜索

首页  >  问答  >  正文

创建一个悬停效果,将菜单按钮转换为具有阴影克隆版本的 x 形状

首先我想承认我的标题很令人困惑,对此感到抱歉。我想要实现的是悬停时的以下效果:

我的网站在这里 https://wordpress-493302-3130963.cloudwaysapps.com/

我已经成功地使用 css 转换完成了我想要实现的目标的一半,但无法看到创建按钮的影子副本,如上图所示。我的CSS如下

.cta-button-menu:hover {
        transform:rotateZ(45deg) !important;
        background: #21B6CD !important;
        color: white !important;
        transition: 1s;
    }

如果这可以使用 JS 或其他也可以实现的东西来实现,但 CSS 是首选。

不包含从大型菜单插件生成的 html,但如果需要可以这样做。

P粉546257913P粉546257913231 天前413

全部回复(2)我来回复

  • P粉316890884

    P粉3168908842024-04-05 10:54:37

    我建议制作 2 个按钮/一个标签:

    body {
      padding: 4em;
      background-color: black;
    }
    
    .button {
      position: relative;
    }
    
    .firstButton,
    .secondButton {
      position: absolute;
      display: inline-block;
      padding: 1em;
      text-align: center;
      color: white;
      text-decoration: none;
      border: 1px solid white;
    }
    .firstButton {
      visibility: hidden;
    }
    
    .button:hover .firstButton {
      transform: rotateZ(45deg);
      background: #E83054;
      visibility: visible;
    }
    .button:hover .secondButton {
      transform: rotateZ(-45deg);
      background: #21B6CD;
    }  
      

    回复
    0
  • P粉670838735

    P粉6708387352024-04-05 00:04:10

    您可以使用 ::before 来应用此效果。

    .wrapper{
    height:300px;
    background-color:gray;
    }
    
    .btn, .btn::before{
      font-size:2rem;
      color:white;
      width:200px;
      height:70px;
      border:2px solid white;
      transition:all 0.3s linear;
      display:flex;
      justify-content:center;
      align-items:center;
    }
    
    .btn{
      position:relative;
      top:30%;
      left:30%;
      background-color:transparent;
    }
      
    .btn:hover {
       background-color:#21b6cd;
       transform: rotateZ(45deg);
       border:none;
    }
    
    .btn::before {
      content:"Book Now";
      background-color:transparent;
      position:absolute;
    }
    
    .btn:hover::before{
      transform: rotateZ(-90deg);
      background-color:#e72f54;
      border:none;
    }

    回复
    0
  • 取消回复