CSS - Flip Effect



Description

An Element can turn over or cause to turn over with a sudden quick movement.

Syntax

@keyframes flip {
   0% {
      transform: perspective(400px) rotateY(0);
      animation-timing-function: ease-out;
   }
   40% {
      transform: perspective(400px) translateZ(150px) rotateY(170deg);
      animation-timing-function: ease-out;
   }
   50% {
      transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
      animation-timing-function: ease-in;
   }
   80% {
      transform: perspective(400px) rotateY(360deg) scale(.95);
      animation-timing-function: ease-in;
   }
   100% {
      transform: perspective(400px) scale(1);
      animation-timing-function: ease-in;
   }
} 

Parameters

  • Transform − Transform applies to 2d and 3d transformation to an element.

  • Opacity − Opacity applies to an element to make translucence.

Example

<html>

<head>
    <style>
        .flipAnimated {
            background-image: url(/https/www.tutorialspoint.com/html/images/test.png);
            background-repeat: no-repeat;
            background-position: left top;
            padding-top: 95px;
            margin-bottom: 60px;
            margin-right: 80px;
            margin-left: 80px;
            margin-top: 50px;
            -webkit-animation-duration: 3s;
            animation-duration: 3s;
            -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
        }

        @-webkit-keyframes flip {
            0% {
                -webkit-transform: perspective(400px) rotateY(0);
                -webkit-animation-timing-function: ease-out;
            }

            40% {
                -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);
                -webkit-animation-timing-function: ease-out;
            }

            50% {
                -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
                -webkit-animation-timing-function: ease-in;
            }

            80% {
                -webkit-transform: perspective(400px) rotateY(360deg) scale(.95);
                -webkit-animation-timing-function: ease-in;
            }

            100% {
                -webkit-transform: perspective(400px) scale(1);
                -webkit-animation-timing-function: ease-in;
            }
        }

        @keyframes flip {
            0% {
                transform: perspective(400px) rotateY(0);
                animation-timing-function: ease-out;
            }

            40% {
                transform: perspective(400px) translateZ(150px) rotateY(170deg);
                animation-timing-function: ease-out;
            }

            50% {
                transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
                animation-timing-function: ease-in;
            }

            80% {
                transform: perspective(400px) rotateY(360deg) scale(.95);
                animation-timing-function: ease-in;
            }

            100% {
                transform: perspective(400px) scale(1);
                animation-timing-function: ease-in;
            }
        }

        .flip {
            -webkit-backface-visibility: visible !important;
            -webkit-animation-name: flip;
            backface-visibility: visible !important;
            animation-name: flip;
        }
    </style>
</head>

<body>
    <div id="flipAnimates" class="flipAnimated"></div>
    <button onclick="flipFun()">Click</button>

    <script>
        function flipFun() {
            document.getElementById("flipAnimates").classList.add('flip');
        }
    </script>
</body>

</html>

Output

It will produce the following result:

Flip Effect
css_animation.htm
Advertisements