直接上代码

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:  25px; padding-top: 15px;}
.index_card{ position: relative; height: 122px;}
.index_card li{ width: %; padding: 1.5%; position: absolute; top: ;}
.index_card li img{ width: %; display: block;}
.index_card .one{ left: ;}
.index_card .two{ left: %;}
.index_card .third{ left: %;}
.index_card .one.choose{ z-index: ;
animation: onePlay 1s linear ;
-webkit-animation: onePlay 1s linear ;
-moz-animation: onePlay 1s 0s linear ;
}
.index_card .two.choose{ z-index: ;
animation: twoPlay 1s linear ;
-webkit-animation: twoPlay 1s linear ;
-moz-animation: twoPlay 1s 0s linear ;
}
.index_card .third.choose{ z-index: ;
animation: thirdPlay 1s linear ;
-webkit-animation: thirdPlay 1s linear ;
-moz-animation: thirdPlay 1s 0s linear ;
}

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

/*动画*/
@keyframes onePlay{
% { left: %; transform:scale() rotateY(0deg);}
% { left: %; transform:scale(1.1) rotateY(180deg);}
% { left: %; transform:scale(1.2) rotateY(0deg);}
% { left: %; transform:scale(1.3) rotateY(180deg);}
% { left: %; transform:scale(1.4) rotateY(0deg);}
% { left: %; transform:scale(1.5) rotateY(180deg);}
}
@-webkit-keyframes onePlay{
% { left: %; -webkit-transform:scale() rotateY(0deg);}
% { left: %; -webkit-transform:scale(1.1) rotateY(180deg);}
% { left: %; -webkit-transform:scale(1.2) rotateY(0deg);}
% { left: %; -webkit-transform:scale(1.3) rotateY(180deg);}
% { left: %; -webkit-transform:scale(1.4) rotateY(0deg);}
% { left: %; -webkit-transform:scale(1.5) rotateY(180deg);}
}
@-moz-keyframes onePlay{
% { left: %; -moz-transform:scale() rotateY(0deg);}
% { left: %; -moz-transform:scale(1.1) rotateY(180deg);}
% { left: %; -moz-transform:scale(1.2) rotateY(0deg);}
% { left: %; -moz-transform:scale(1.3) rotateY(180deg);}
% { left: %; -moz-transform:scale(1.4) rotateY(0deg);}
% { left: %; -moz-transform:scale(1.5) rotateY(180deg);}
} @keyframes twoPlay{
% { transform:scale() rotateY(0deg);}
% { transform:scale(1.1) rotateY(180deg);}
% { transform:scale(1.2) rotateY(0deg);}
% { transform:scale(1.3) rotateY(180deg);}
% { transform:scale(1.4) rotateY(0deg);}
% { transform:scale(1.5) rotateY(180deg);}
}
@-webkit-keyframes twoPlay{
% { -webkit-transform:scale() rotateY(0deg);}
% { -webkit-transform:scale(1.1) rotateY(180deg);}
% { -webkit-transform:scale(1.2) rotateY(0deg);}
% { -webkit-transform:scale(1.3) rotateY(180deg);}
% { -webkit-transform:scale(1.4) rotateY(0deg);}
% { -webkit-transform:scale(1.5) rotateY(180deg);}
}
@-moz-keyframes twoPlay{
% { -moz-transform:scale() rotateY(0deg);}
% { -moz-transform:scale(1.1) rotateY(180deg);}
% { -moz-transform:scale(1.2) rotateY(0deg);}
% { -moz-transform:scale(1.3) rotateY(180deg);}
% { -moz-transform:scale(1.4) rotateY(0deg);}
% { -moz-transform:scale(1.5) rotateY(180deg);}
} @keyframes thirdPlay{
% { left: %; transform:scale() rotateY(0deg);}
% { left: %; transform:scale(1.1) rotateY(180deg);}
% { left: %; transform:scale(1.2) rotateY(0deg);}
% { left: %; transform:scale(1.3) rotateY(180deg);}
% { left: %; transform:scale(1.4) rotateY(0deg);}
% { left: %; transform:scale(1.5) rotateY(180deg);}
}
@-webkit-keyframes thirdPlay{
% { left: %; -webkit-transform:scale() rotateY(0deg);}
% { left: %; -webkit-transform:scale(1.1) rotateY(180deg);}
% { left: %; -webkit-transform:scale(1.2) rotateY(0deg);}
% { left: %; -webkit-transform:scale(1.3) rotateY(180deg);}
% { left: %; -webkit-transform:scale(1.4) rotateY(0deg);}
% { left: %; -webkit-transform:scale(1.5) rotateY(180deg);}
}
@-moz-keyframes thirdPlay{
% { left: %; -moz-transform:scale() rotateY(0deg);}
% { left: %; -moz-transform:scale(1.1) rotateY(180deg);}
% { left: %; -moz-transform:scale(1.2) rotateY(0deg);}
% { left: %; -moz-transform:scale(1.3) rotateY(180deg);}
% { left: %; -moz-transform:scale(1.4) rotateY(0deg);}
% { left: %; -moz-transform:scale(1.5) rotateY(180deg);}
}

js:

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

js 翻牌活动效果的更多相关文章

  1. React.js实现原生js拖拽效果及思考

    一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖 ...

  2. 用js实现动画效果核心方式

    为了做好导航菜单,有时候需要在菜单下拉的时候实现动画效果,所以这几天就研究了研究如何用js实现动画效果,实现动画核心要用到两个函数,一个是setTimeOut,另一个是setInterval. 下边我 ...

  3. js拖拽效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 原生JS实现分页效果2.0(新增了上一页和下一页,添加当前元素样式)

    虽然写的很烂,但至少全部都是自己写的,因为这个没有固定的顺序,所以就没有封装,如果你技术好的话,可以你写的分享给我,谢谢. <!DOCTYPE html><html lang=&qu ...

  5. 原生JS实现分页效果1.0

    不太完整,写的太急,等等加上完整注释,写起来还是有些难度的,写的有点水,后面再改进改进. <!DOCTYPE html><html lang="en">&l ...

  6. Android基于GridView实现的翻牌游戏效果

    好久没有写博客了,上一篇博文距现在都有三个多月了,实在是惭愧.但是这段时间仍然是在忙于项目或是自我充电.这几天实现了一个基于GridView的翻牌动画效果,这里就将其整理出来同各位分享. 一.整体介绍 ...

  7. 使用JS实现手风琴效果

    想要实现简单的手风琴切换效果,需要使用JS实现,如下是使用javascript源码实现,后续会更新使用jQuery实现. 1. 先进行简单的布局:我们可以再ul下添加几个li实现html的简单布局,再 ...

  8. js弹窗登录效果(源码)--web前端

    1.JS弹窗登录效果 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  9. 原生JS实现弹幕效果

    纯属无聊写的,可能有很多问题,欢迎批评指教. 效果图:图一是预设的一些弹幕,图二是自己发射的弹幕,效果是一样的.   首先是弹幕的位置,是要从最右滑到最左,为了防止随机高度弹幕会覆盖的问题,设置了通道 ...

随机推荐

  1. puppet 横向扩展(二)

    Table of Contents 1. 概述 2. 实验环境 3. 实验步骤 3.1. 机器B 的环境 3.1.1. 安装puppetmaster 以及 apache passenger 3.1.2 ...

  2. js中实现隐藏部分姓名或者电话号码

    项目需要, 只显示用户的姓名和手机号开头跟结尾, 其他部分用 * 代替, 借鉴了网上的代码, 参考地址没来得及记下 hidden:function(str,frontLen,endLen) { var ...

  3. Linux 简介(day1)

    一.Linux 诞生于1991年 二.创始人:林纳斯.托瓦茨(Linus Torvalds) 三.logo:企鹅 四.Linux完整系统包括 1.Linux kernel (Linux 内核) 2.f ...

  4. 【Java8】@FunctionalInterface

    阅读目录 什么是函数式接口(Functional Interface) 函数式接口用途 关于@FunctionalInterface注解 函数式接口里允许定义默认方法 函数式接口里允许定义静态方法 函 ...

  5. 转://Oracle Golden Gate 概念和原理

    引言:Oracle Golden Gate是Oracle旗下一款支持异构平台之间高级复制技术,是Oracle力推一种HA高可用产品,简称“OGG”,可以实现Active-Active 双业务中心架构 ...

  6. sku回忆笔记

    分类表:(商品分类编号, 分类名称, 父分类编号)(1, 男装, 0)(2, 裤子, 1)(3, 外套, 1)(4, 内裤, 1)(5, 袜子, 1) 商品表:(商品编号, 商品名称, 商品分类编号, ...

  7. 关于alter database datafile offline和alter database datafile offline drop 的区别

    转: https://blog.csdn.net/killvoon/article/details/46913183 -----------------------2015-07-16-------- ...

  8. IDEA+TestNG

    1.常用注解 2.手把手教你掌握必备测试框架testNG:http://www.51testing.com/zhuanti/TestNG.htm [testNG常用注解] 1 @Test:标记一个类或 ...

  9. bernoulli数

    LL B[N][],C[N][N],f[N][]; int n,m; LL gcd(LL a,LL b){return b?gcd(b,a%b):a;} LL lcm(LL a,LL b){retur ...

  10. C++ —— 返回数组指针的函数 和 返回指向函数的指针的函数

    返回数组指针的函数 基础知识:数组不能被拷贝,函数不能返回数组,只能返回数组的指针或者引用. 定义一个 返回数组指针的函数 的方法,以 一个接收参数为 含有10个整型元素的数组的引用  和 返回一个含 ...