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 相关文章推荐
学习面向对象之面向对象的术语
Nov 30 Javascript
jquery实现图片灯箱明暗的遮罩效果
Nov 15 Javascript
jquery实现点击文字可编辑并修改保存至数据库
Apr 15 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
Mar 11 Javascript
js实现增加数字显示的环形进度条效果
Feb 05 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
May 08 Javascript
详解用node.js实现简单的反向代理
Jun 26 Javascript
vuejs实现本地数据的筛选分页功能思路详解
Nov 15 Javascript
vue中的 $slot 获取插槽的节点实例
Nov 12 Javascript
js实现视图和数据双向绑定的方法分析
Feb 05 Javascript
Vue Mint UI mt-swipe的使用方式
Jun 05 Vue.js
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 判断常量,变量和函数是否存在
2009/04/26 PHP
php 小乘法表实现代码
2009/07/16 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
javascript事件模型代码
2007/07/01 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
Python 处理数据的实例详解
2017/08/10 Python
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
平面设计师工作职责范文
2013/12/03 职场文书
生物科学专业个人求职信范文
2013/12/05 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
单位授权委托书范文
2014/08/02 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书