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+iframe 实现无刷新载入整页的代码
Mar 17 Javascript
原生JS实现LOADING效果
Mar 16 Javascript
JS如何设置iOS中微信浏览器的title
Nov 22 Javascript
微信小程序动态的加载数据实例代码
Apr 14 Javascript
JavaScript中undefined和null的区别
May 03 Javascript
深入浅出理解JavaScript闭包的功能与用法
Aug 01 Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
js实现前面自动补全位数的方法
Oct 10 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
May 08 Javascript
vue项目中mock.js的使用及基本用法
May 22 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
全国中波电台频率表
2020/03/11 无线电
Zend公司全球首推PHP认证
2006/10/09 PHP
基于PHP静态类的原罪详解
2013/05/06 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
javascript常见数据验证插件大全
2015/08/03 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
微信小程序switch组件使用详解
2018/01/31 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
Python序列操作之进阶篇
2016/12/08 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
浅谈python写入大量文件的问题
2018/11/09 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
django 多数据库及分库实现方式
2020/04/01 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
《美丽的小路》教学反思
2014/02/26 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
入党转正介绍人意见
2015/06/03 职场文书
董事长致辞
2015/07/29 职场文书
Python Socket编程详解
2021/04/25 Python
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python