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 相关文章推荐
简单三步,搞掂内存泄漏
Mar 10 Javascript
jquery自定义属性(类型/属性值)
May 21 Javascript
JQuery EasyUI的使用
Feb 24 Javascript
React快速入门教程
Jan 17 Javascript
JS实现购物车特效
Feb 02 Javascript
js中Number数字数值运算后值不对的解决方法
Feb 28 Javascript
基于JQuery的Ajax方法使用详解
Aug 16 jQuery
react配合antd组件实现的管理系统示例代码
Apr 24 Javascript
vue.js删除列表中的一行
Jun 30 Javascript
微信小程序表单弹窗实例
Jul 19 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
May 07 Javascript
Vue的状态管理vuex使用方法详解
Feb 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.MVC的模板标签系统(五)
2006/09/05 PHP
自动分页的不完整解决方案
2007/01/12 PHP
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
比较详细PHP生成静态页面教程
2012/01/10 PHP
PHP的5个安全措施小结
2012/07/17 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
php分页示例分享
2014/04/30 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
jQuery实现简单弹幕制作
2020/12/10 jQuery
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
python插入数据到列表的方法
2015/04/30 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
python 实现dict转json并保存文件
2019/12/05 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
团员个人的自我评价
2013/12/02 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
战友聚会策划方案
2014/06/13 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
Java实现多线程聊天室
2021/06/26 Java/Android