How to play animation on hover?

前端 未结 4 855
孤城傲影
孤城傲影 2021-02-15 19:14

I have a button that I want to rotate when the mouse hovers over it. However, while the spinning works when the mouse enters, it also spins when the mouse leaves. Here is what I

相关标签:
4条回答
  • 2021-02-15 19:21

    Try this snippet

    button:hover {
      transition: transform 1.2s linear;
      transform: rotate(360deg);
    }
    <button>
    X
    </button>

    0 讨论(0)
  • 2021-02-15 19:32

    Use animation instead of transition and make use of animation-play-stateMDN

    button{
      animation: rotate360 1.2s linear infinite;  /* animation set */
      animation-play-state: paused;               /* but paused */
    }
    button:hover{
      animation-play-state: running;              /* trigger on hover */
    }
    @keyframes rotate360 {
      to { transform: rotate(360deg); }           
    }
    <button>X</button>

    0 讨论(0)
  • 2021-02-15 19:36

    try this

    button:hover {
      transform: rotate(360deg);
      transition: transform 1.2s linear;
    }
    <button>
    X
    </button>

    0 讨论(0)
  • 2021-02-15 19:41

    In previous examples when mouse leaves an element the transition resets to first state very suddenly. It's better to make the transition play back.

    In this example button is animated when mouse is hovering and when mouse left it:

    button {
       transition: transform 1.2s linear;
    }
    button:hover {
       transform: rotate(360deg);
    }
    <button>
    X
    </button>

    0 讨论(0)
提交回复
热议问题