zoukankan      html  css  js  c++  java
  • 翻页日历动画

    样式:

    <style>
            @-webkit-keyframes flipTop {
                0% {
                    -webkit-transform: perspective(400px) rotateX(0deg);
                    background-color: #ffdcdc;
                }
    
                100% {
                    -webkit-transform: perspective(400px) rotateX(-90deg);
                    background-color: #fff4f4;
                }
            }
    
            @-webkit-keyframes flipBottom {
                0% {
                    -webkit-transform: perspective(400px) rotateX(90deg);
                }
    
                100% {
                    -webkit-transform: perspective(400px) rotateX(0deg);
                }
            }
    
            @-moz-keyframes flipTop {
                0% {
                    -webkit-transform: perspective(400px) rotateX(0deg);
                    background-color: #ffdcdc;
                }
    
                100% {
                    -webkit-transform: perspective(400px) rotateX(-90deg);
                    background-color: #fff4f4;
                }
            }
    
            @-moz-keyframes flipBottom {
                0% {
                    -moz-transform: perspective(400px) rotateX(90deg);
                }
    
                100% {
                    -moz-transform: perspective(400px) rotateX(0deg);
                }
            }
    
            @-ms-keyframes flipTop {
                0% {
                    -ms-transform: perspective(400px) rotateX(0deg);
                }
    
                100% {
                    -ms-transform: perspective(400px) rotateX(-90deg);
                }
            }
    
            @-ms-keyframes flipBottom {
                0% {
                    -ms-transform: perspective(400px) rotateX(90deg);
                }
    
                100% {
                    -ms-transform: perspective(400px) rotateX(0deg);
                }
            }
    
            .flipTimer {
                font-family: "Helvetica Neue", Helvetica, sans-serif;
                font-size: 0.373rem;
                height: 0.68rem;
                color: #ff4b5c;
                display: inline-block;
            }
            [data-dpr='1'] .flipTimer{
                font-size: 14px;
            }
            [data-dpr='2'] .flipTimer{
                font-size: 28px;
            }
            [data-dpr='3'] .flipTimer{
                font-size: 42px;
            }
            .flipTimer .digit-set {
                border-radius: .133333rem;
                 .506667rem;
                height: 100%;
                display: inline-block;
                position: relative;
                border-radius: .053333rem;
                -webkit-box-shadow: 0 .04rem .066667rem #ffa1a1;
                -moz-box-shadow: 0 .04rem .066667rem #ffa1a1;
                box-shadow: 0 .04rem .066667rem #ffa1a1;
            }
    
            .flipTimer .digit {
                position: absolute;
                height: 100%;
                 100%;
                display:block;
            }
    
            .flipTimer .digit > div {
                position: absolute;
                left: 0;
                overflow: hidden;
                height: 50%;
                 100%;
                display: block;
            }
    
            .flipTimer .digit > div.digit-top, .flipTimer .digit > div.shadow-top {
                background-color: #fff4f4;
                box-sizing: border-box;
                top: 0;
                z-index: 0;
            }
    
            .flipTimer .digit > div.digit-top:before, .flipTimer .digit > div.shadow-top:before {
                content: "";
                height: 100%;
                 100%;
                position: absolute;
                left: 0;
                top: 0;
            }
    
            .flipTimer .digit > div.shadow-top {
                opacity: 0;
                -webkit-transition: opacity 0.3s ease-in;
            }
    
            .flipTimer .digit > div.digit-bottom, .flipTimer .digit > div.shadow-bottom {
                background-color: #fff4f4;
                bottom: 0;
                z-index: 0;
            }
    
            .flipTimer .digit > div.digit-bottom .digit-wrap, .flipTimer .digit > div.shadow-bottom .digit-wrap {
                -webkit-transform: translateY(-50%);
                -moz-transform: translateY(-50%);
                -ms-transform: translateY(-50%);
                -o-transform: translateY(-50%);
                transform: translateY(-50%);
            }
            .digit-wrap{
                padding-top: 1px;
                display: table-cell;
                text-align: center;
                 .506667rem;
                height: 0.68rem;
                line-height: 1;
                vertical-align: middle;
            }
    
            .flipTimer .digit > div.digit-bottom:before, .flipTimer .digit > div.shadow-bottom:before {
                content: "";
                height: 100%;
                 100%;
                position: absolute;
                left: 0;
                top: 0;
            }
    
            .flipTimer .digit > div.shadow-bottom {
                opacity: 0;
                -webkit-transition: opacity 0.3s ease-in;
            }
    
            .flipTimer .digit.previous .digit-top,
            .flipTimer .digit.previous .shadow-top {
                opacity: 1;
                z-index: 2;
                -webkit-transform-origin: 50% 100%;
                -webkit-animation: flipTop 0.3s ease-in both;
                -moz-transform-origin: 50% 100%;
                -moz-animation: flipTop 0.3s ease-in both;
                -ms-transform-origin: 50% 100%;
                -ms-animation: flipTop 0.3s ease-in both;
                transform-origin: 50% 100%;
                animation: flipTop 0.3s ease-in both;
            }
    
            .flipTimer .digit.previous .digit-bottom,
            .flipTimer .digit.previous .shadow-bottom {
                z-index: 1;
                opacity: 1;
            }
    
            .flipTimer .digit.active .digit-top {
                z-index: 1;
                background-color: #ffdcdc;
                border-radius: .053333rem;
            }
    
            .flipTimer .digit.active .digit-bottom {
                z-index: 2;
                -webkit-transform-origin: 50% 0%;
                -webkit-animation: flipBottom 0.3s 0.3s ease-out both;
                -moz-transform-origin: 50% 0%;
                -moz-animation: flipBottom 0.3s 0.3s ease-out both;
                -ms-transform-origin: 50% 0%;
                -ms-animation: flipBottom 0.3s 0.3s ease-out both;
                transform-origin: 50% 0%;
                animation: flipBottom 0.3s 0.3s ease-out both;
            }
    /*延迟*/
    .delay1 .digit-top,.delay1 .shadow-top,.delay1 .digit-bottom{
        animation-delay:600ms !important;
        -webkit-animation-delay:600ms !important;
    }
    .delay2 .digit-top,.delay2 .shadow-top,.delay2 .digit-bottom{
        animation-delay:800ms !important;
        -webkit-animation-delay:800ms !important; 
    }
    .delay3 .digit-top,.delay3 .shadow-top,.delay3 .digit-bottom{
        animation-delay:1000ms !important;
        -webkit-animation-delay:1000ms !important; /* Safari 和 Chrome */
    }
    

      

    </style>

      html

    <div class="flipTimer">
                    <div class="digit-set">
                        <div class="digit jsTop active">
                            <div class="digit-top">
                                <span class="digit-wrap">0</span>
                            </div>
                            <div class="shadow-top"></div>
                            <div class="digit-bottom">
                                <span class="digit-wrap">0</span>
                            </div>
                            <div class="shadow-bottom"></div> 
                        </div>
                        <div class="digit jsBm previous">
                            <div class="digit-top">
                                <span class="digit-wrap"></span>
                            </div>
                            <div class="shadow-top"></div>
                            <div class="digit-bottom">
                                <span class="digit-wrap"></span>
                            </div>
                            <div class="shadow-bottom"></div>
                        </div>
                    </div>
                </div>
    

      js动画调用:

     function run(el,num){
            el.find(".previous .digit-wrap").html(num);
            var top = el.find(".jsTop"),
                bm =  el.find(".jsBm")
            if (top.hasClass("previous")) {
                top.addClass("active").removeClass("previous");
                bm.addClass("previous").removeClass("active");
            } else {
                top.addClass("previous").removeClass("active");
                bm.addClass("active").removeClass("previous");
            }
        }
    

      

  • 相关阅读:
    [蓝桥杯] 第39级台阶
    [蓝桥杯] 马虎的算式
    POJ 1142 Smith Numbers(史密斯数)
    HDU 1181 变形课
    HDU 1728 逃离迷宫
    HDU 2188 悼念512汶川大地震遇难同胞――选拔志愿者 巴什博奕
    HDU 2177 取(2堆)石子游戏 (威佐夫博弈)
    HDU 1847 Good Luck in CET-4 Everybody! 博弈
    HDU 1525 Euclid's Game
    HDU 1517 A Multiplication Game 博弈
  • 原文地址:https://www.cnblogs.com/tangbuluo/p/8144431.html
Copyright © 2011-2022 走看看