直接上代码

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. 【C编程基础】C程序常用函数

    基础知识 1.const const 修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的. ; 或 ; //在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再改变它了 ...

  2. 忽略Git钩子

    https://blog.csdn.net/alps1992/article/details/80464700 pre-commit GIT_DIR/hooks/pre-commit 这个钩子被 gi ...

  3. 【CQOI2011】放棋子

    [CQOI2011]放棋子 在一个n行m列的棋盘里放一些彩色的棋子,使得每个格子最多放一个棋子,且不同颜色的棋子不能在同一行或者同一列.有多少种方法? 例如\(,n=m=3\),有两个白棋子和一个灰棋 ...

  4. Navicat 链接mysql 显示 Clinet dose not support authentication protocol request by server ;consider upgrading MySQL client

    1  在命令窗口 输入mysql -uroot -p 首先通过cmd进入mysql 2 更改加密方式 mysql> ALTER USER 'root'@'localhost' IDENTIFIE ...

  5. Linux vi/vim编辑器

    所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...

  6. java读取properties中文乱码

    1 确认properties文件的编码是utf-8 2 采用流的方式读取文件,设置编码为utf-8 public class ErrorCodeConfig { static Properties p ...

  7. Cglib动态代理实现方式

    Cglib动态代理实现方式 我们先通过一个demo看一下Cglib是如何实现动态代理的. 首先定义个服务类,有两个方法并且其中一个方法用final来修饰. public class PersonSer ...

  8. VBA果然很强大

    1.我的是office 2007,新建空白文档-开发工具 -visual basic -project -thisDocument   - Document_Open ,写入以下代码(并另存为word ...

  9. BZOJ4327:[JSOI2012]玄武密码(SAM)

    Description 在美丽的玄武湖畔,鸡鸣寺边,鸡笼山前,有一块富饶而秀美的土地,人们唤作进香河.相传一日,一缕紫气从天而至,只一瞬间便消失在了进香河中.老人们说,这是玄武神灵将天书藏匿在此.  ...

  10. 05 python 初学(列表)

    列表,有点像c++里的数组 # _author: lily # _date: 2018/12/16 mylist = ["xiaohong", "xiaogang&quo ...