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 相关文章推荐
Jquery Change与bind事件代码
Sep 29 Javascript
JS根据变量保存方法名并执行方法示例
Apr 04 Javascript
javascript发送短信验证码实现代码
Nov 12 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
移动端刮刮乐的实现方式(js+HTML5)
Mar 23 Javascript
vue父组件点击触发子组件事件的实例讲解
Feb 08 Javascript
JointJS流程图的绘制方法
Dec 03 Javascript
Jquery的Ajax技术使用方法
Jan 21 jQuery
详解javascript replace高级用法
Feb 17 Javascript
详解element-ui中el-select的默认选择项问题
Aug 02 Javascript
JavaScript实现简单的图片切换功能(实例代码)
Apr 10 Javascript
关于angular引入ng-zorro的问题浅析
Sep 09 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脚本的10个技巧(2)
2006/10/09 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
php备份数据库类分享
2015/04/14 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
angularjs实现猜数字大小功能
2020/05/20 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
python内置模块collections知识点总结
2019/12/19 Python
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
网络程序员自荐信
2014/01/25 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
产品质量承诺书范文
2014/03/27 职场文书
小学英语复习计划
2015/01/19 职场文书
新郎结婚保证书
2015/02/26 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
MySql新手入门的基本操作汇总
2021/05/13 MySQL
日元符号 ¥
2022/02/17 杂记