CSS menu button animation

CSS menu button animation

To write a drop-down menu, click the button. The menu entrance is to click an icon button. Before, I used a picture to replace it. Today, I suddenly want to use CSS to write an effect. I mainly refer to the button in the upper right corner of the Pengpai mobile terminal.

Effect:

HTML

    //Change class through click event in vue
    <div 
        class="burger" 
        style="float: right;"
        :class="{'transform':rightTopBtn}"
        @click.stop="rightTopBtn=!rightTopBtn"
    >
        <div></div>
        <div></div>
        <div></div>
    </div>

CSS

  <!--Button container START-->
    .burger {
        cursor: pointer;
        display: inline-block;
        margin: 7px 6px 0 0;
        outline: none;
    }
    <!--Button containerEND-->
    <!--The three horizontal lines are rotated by rotate3d START-->
    .burger div {
        width: 30px;
        height: 4px;
        margin-bottom: 6px;
        background-color: rgb(51, 51, 51);
        transform: rotate3d(0, 0, 0, 0);
    }
    <!--Three horizontal lines END-->
    .burger.transform div {
        background-color: transparent;
    }
    .burger.transform div:first-of-type {
        top: 10px;
        transform: rotate3d(0, 0, 1, 45deg)
    }
    .burger.transform div:last-of-type {
        bottom: 10px;
        transform: rotate3d(0, 0, 1, -45deg)
    }
    <!--The effect of the first and third horizontal lines after clicking START-->
    .burger.transform div:first-of-type, .burger.transform div:last-of-type {
        transition: transform .4s .3s ease, background-color 250ms ease-in;
        background: #00c1de;
    }
    <!--The effect of the first and third horizontal lines after clickingEND-->
    <!--Resume animation after canceling click START-->
    .burger div:first-of-type, .burger div:last-of-type {
        transition: transform .3s ease .0s, background-color 0ms ease-out;
        position: relative;
    }
    <!--Resume animation after canceling clickEND-->

The effect of animation can be achieved by using only transition. By setting the changes of different attributes and mastering the change time and delay time, the animation can be arranged in sequence.

Summarize

The above is the CSS menu button animation that I introduced to you. I hope it will be helpful to you. If you have any questions, please leave me a message and I will reply to you in time!

<<:  IE6 space bug fix method

>>:  Docker implements container port binding local port

Recommend

Summary of Seven Basic XHTML Coding Rules

1. All tags must have a corresponding end tag Prev...

Detailed explanation of BOM and DOM in JavaScript

Table of contents BOM (Browser Object Model) 1. W...

MySQL dual-machine hot standby implementation solution [testable]

Table of contents 1. Concept 2. Environmental Des...

Detailed explanation of keepAlive use cases in Vue

In development, it is often necessary to cache th...

How to use vite to build vue3 application

1. Installation Tip: There is currently no offici...

Detailed explanation of Linux host name modification command

Linux change hostname command 1. If you only need...

Summary of common Nginx techniques and examples

1. Priority of multiple servers For example, if e...

Nginx anti-crawler strategy to prevent UA from crawling websites

Added anti-crawler policy file: vim /usr/www/serv...

Detailed explanation of LVM seamless disk horizontal expansion based on Linux

environment name property CPU x5650 Memory 4G dis...

What is this in JavaScript point by point series

Understand this Perhaps you have seen this in oth...

An example of refactoring a jigsaw puzzle game using vue3

Preface It took two days to reconstruct a puzzle ...

Docker container time zone adjustment operation

How to check if the Docker container time zone is...

How to modify the root user password in mysql 8.0.16 winx64 and Linux

Please handle basic operations such as connecting...

VMWare Linux MySQL 5.7.13 installation and configuration tutorial

This article shares with you the tutorial of inst...