zoukankan      html  css  js  c++  java
  • js 翻牌活动效果

    直接上代码

    html:

    <div class="index_main">
        <ul class="index_card">
            <li class="one"><img src="{:ADDON_APP_PATH}/img/card.png" /></li>
            <li class="two"><img src="{:ADDON_APP_PATH}/img/card.png" /></li>
            <li class="third"><img src="{:ADDON_APP_PATH}/img/card.png" /></li>
        </ul>
    </div>

    界面css:

    .index_main{ margin: 0 25px; padding-top: 15px;}
    .index_card{ position: relative; height: 122px;}
    .index_card li{  30%; padding: 0 1.5%; position: absolute; top: 0;}
    .index_card li img{  100%; display: block;}
    .index_card .one{ left: 0;}
    .index_card .two{ left: 33%;}
    .index_card .third{ left: 66%;}
    .index_card .one.choose{ z-index: 2;
        animation: onePlay 1s linear 1;
        -webkit-animation: onePlay 1s linear 1;
        -moz-animation: onePlay 1s 0s linear 1;
    }
    .index_card .two.choose{ z-index: 2;
        animation: twoPlay 1s linear 1;
        -webkit-animation: twoPlay 1s linear 1;
        -moz-animation: twoPlay 1s 0s linear 1;
    }
    .index_card .third.choose{ z-index: 2;
        animation: thirdPlay 1s linear 1;
        -webkit-animation: thirdPlay 1s linear 1;
        -moz-animation: thirdPlay 1s 0s linear 1;
    }

    旋转css:(做了兼容的,可以放心使用)

    /*动画*/
    @keyframes onePlay{
        0%   { left: 0%; transform:scale(1) rotateY(0deg);}
        20%  { left: 6%; transform:scale(1.1) rotateY(180deg);}
        40%  { left: 12%; transform:scale(1.2) rotateY(0deg);}
        60%  { left: 18%; transform:scale(1.3) rotateY(180deg);}
        80%  { left: 24%; transform:scale(1.4) rotateY(0deg);}
        100% { left: 33%; transform:scale(1.5) rotateY(180deg);}
    }
    @-webkit-keyframes onePlay{
        0%   { left: 0%; -webkit-transform:scale(1) rotateY(0deg);}
        20%  { left: 6%; -webkit-transform:scale(1.1) rotateY(180deg);}
        40%  { left: 12%; -webkit-transform:scale(1.2) rotateY(0deg);}
        60%  { left: 18%; -webkit-transform:scale(1.3) rotateY(180deg);}
        80%  { left: 24%; -webkit-transform:scale(1.4) rotateY(0deg);}
        100% { left: 33%; -webkit-transform:scale(1.5) rotateY(180deg);}
    }
    @-moz-keyframes onePlay{
        0%   { left: 0%; -moz-transform:scale(1) rotateY(0deg);}
        20%  { left: 6%; -moz-transform:scale(1.1) rotateY(180deg);}
        40%  { left: 12%; -moz-transform:scale(1.2) rotateY(0deg);}
        60%  { left: 18%; -moz-transform:scale(1.3) rotateY(180deg);}
        80%  { left: 24%; -moz-transform:scale(1.4) rotateY(0deg);}
        100% { left: 33%; -moz-transform:scale(1.5) rotateY(180deg);}
    }
    
    @keyframes twoPlay{
        0%   { transform:scale(1) rotateY(0deg);}
        20%  { transform:scale(1.1) rotateY(180deg);}
        40%  { transform:scale(1.2) rotateY(0deg);}
        60%  { transform:scale(1.3) rotateY(180deg);}
        80%  { transform:scale(1.4) rotateY(0deg);}
        100% { transform:scale(1.5) rotateY(180deg);}
    }
    @-webkit-keyframes twoPlay{
        0%   { -webkit-transform:scale(1) rotateY(0deg);}
        20%  { -webkit-transform:scale(1.1) rotateY(180deg);}
        40%  { -webkit-transform:scale(1.2) rotateY(0deg);}
        60%  { -webkit-transform:scale(1.3) rotateY(180deg);}
        80%  { -webkit-transform:scale(1.4) rotateY(0deg);}
        100% { -webkit-transform:scale(1.5) rotateY(180deg);}
    }
    @-moz-keyframes twoPlay{
        0%   { -moz-transform:scale(1) rotateY(0deg);}
        20%  { -moz-transform:scale(1.1) rotateY(180deg);}
        40%  { -moz-transform:scale(1.2) rotateY(0deg);}
        60%  { -moz-transform:scale(1.3) rotateY(180deg);}
        80%  { -moz-transform:scale(1.4) rotateY(0deg);}
        100% { -moz-transform:scale(1.5) rotateY(180deg);}
    }
    
    @keyframes thirdPlay{
        0%   { left: 66%; transform:scale(1) rotateY(0deg);}
        20%  { left: 60%; transform:scale(1.1) rotateY(180deg);}
        40%  { left: 54%; transform:scale(1.2) rotateY(0deg);}
        60%  { left: 48%; transform:scale(1.3) rotateY(180deg);}
        80%  { left: 42%; transform:scale(1.4) rotateY(0deg);}
        100% { left: 33%; transform:scale(1.5) rotateY(180deg);}
    }
    @-webkit-keyframes thirdPlay{
        0%   { left: 66%; -webkit-transform:scale(1) rotateY(0deg);}
        20%  { left: 60%; -webkit-transform:scale(1.1) rotateY(180deg);}
        40%  { left: 54%; -webkit-transform:scale(1.2) rotateY(0deg);}
        60%  { left: 48%; -webkit-transform:scale(1.3) rotateY(180deg);}
        80%  { left: 42%; -webkit-transform:scale(1.4) rotateY(0deg);}
        100% { left: 33%; -webkit-transform:scale(1.5) rotateY(180deg);}
    }
    @-moz-keyframes thirdPlay{
        0%   { left: 66%; -moz-transform:scale(1) rotateY(0deg);}
        20%  { left: 60%; -moz-transform:scale(1.1) rotateY(180deg);}
        40%  { left: 54%; -moz-transform:scale(1.2) rotateY(0deg);}
        60%  { left: 48%; -moz-transform:scale(1.3) rotateY(180deg);}
        80%  { left: 42%; -moz-transform:scale(1.4) rotateY(0deg);}
        100% { left: 33%; -moz-transform:scale(1.5) rotateY(180deg);}
    }

    js:

    这里讲原理就好了,大家自己多去思考。这里通过点击,然后在你点击的那张图片增加“choose”这个className.这样就触发了动态的样式,最后当你设置一个setTimeOut,让你的图片显示,最后把“choose”这个className从那张图片上去除掉,就可以了。

  • 相关阅读:
    jQuery radio的取值与赋值
    MVC中一般为什么用IQueryable而不是用IList?用IQueryable比IList好在哪?
    Git 的 .gitignore 配置
    XPath学习:轴(3)——descendant
    python遍历数组的两种方法
    selenium webdriver的各种driver
    Scrapy and Selenium
    scrapy和selenium结合抓取动态网页
    Python处理JSON
    Crontab定时任务配置
  • 原文地址:https://www.cnblogs.com/cczlovexw/p/8073835.html
Copyright © 2011-2022 走看看