js CSS3实现卡牌旋转切换效果


Posted in Javascript onJuly 04, 2017

我们经常会在游戏里看到一些几张卡牌左右切换的效果,中间的一张最突出醒目,向左或向右滑动可切换到另一张,今天我们就用CSS3来实现下这种效果。

我们先来看个demo,具体的样式各位可以自己调整:

js CSS3实现卡牌旋转切换效果

(PC下可点击按钮切换,移动端可左右滑动切换)

从效果上我们可以看到,这5个div可以左右的切换,每次切换时总会有一个在中间显眼的位置进行展示。在切换时,看起来是div进行了移动,进行了DOM的增删操作。但是如果审查下元素,就能看到,DOM元素没有变换位置,它依然在那个位置,我们只是切换了每个元素上的class,于是页面上的位置看起来是发生了变化。

其实原理就是这样的: 不进行DOM的增删,为每个位置上的div都写上特定的样式,每个div都进行绝对定位,然后进行样式的轮播。 每次切换都有个0.6s过渡过程:

-webkit-transition: all 0.6s;
transition: all 0.6s;

比如从左往右的class分别为:item_0, item_1, item_cur, item_3, item_4,每个class都是当前所在div的定位,向左滑动时,右边的div会切换到中间,这样class从左往右就变成了item_1, item_cur, item_3, item_4, item_0。

var egg_change = function(type){
 var $demo = $('.demo'),
  index = parseInt( $demo.attr('index_cur')||2 ),
  $item = $('.demo .item'),
  len = $item.length;

 if( type=='left' ){
  index = (index+1)%len;
 }else{
  index = (index-1+len)%len;
 }
 $demo.attr('index_cur', index);

 $item.removeClass('item_0 item_1 item_3 item_4 item_cur');
 
 $item.eq( (index-2+len)%len ).addClass('item_0');
 $item.eq( (index-1+len)%len ).addClass('item_1');
 $item.eq(index).addClass('item_cur');
 $item.eq( (index+1)%len ).addClass('item_3');
 $item.eq( (index+2)%len ).addClass('item_4');
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
原创javascript小游戏实现代码
Aug 19 Javascript
JavaScript中检测变量是否存在遇到的一些问题
Nov 11 Javascript
Javascript 遍历页面text控件详解
Jan 06 Javascript
用unescape反编码得出汉字示例
Apr 24 Javascript
JavaScript表格常用操作方法汇总
Apr 15 Javascript
详解微信小程序开发之下拉刷新 上拉加载
Nov 24 Javascript
浅谈js函数的多种定义方法与区别
Nov 29 Javascript
详解vue2 $watch要注意的问题
Sep 08 Javascript
vue-resource拦截器设置头信息的实例
Oct 27 Javascript
利用jqgrid实现上移下移单元格功能
Nov 07 Javascript
vue组件库的在线主题编辑器的实现思路
Apr 03 Javascript
VueX模块的具体使用(小白教程)
Jun 05 Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 #Javascript
原生js实现简单的链式操作
Jul 04 #Javascript
详解用vue编写弹出框组件
Jul 04 #Javascript
使用vue构建一个上传图片表单
Jul 04 #Javascript
vue-resource 拦截器(interceptor)的使用详解
Jul 04 #Javascript
JavaScript在控件上添加倒计时功能的实现代码
Jul 04 #Javascript
JavaScript异步上传图片文件的实例代码
Jul 04 #Javascript
You might like
php后台程序与Javascript的两种交互方式
2009/10/25 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
php操作xml
2013/10/27 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
2016/11/12 PHP
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
vuex的简单使用教程
2018/02/02 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
python 利用toapi库自动生成api
2020/10/19 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
应用心理学个人的求职信
2013/12/08 职场文书
大学生实习思想汇报
2014/01/12 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
阿甘正传观后感
2015/06/01 职场文书
校运会班级霸气口号
2015/12/24 职场文书
《确定位置》教学反思
2016/02/18 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书