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 Array.remove() 数组删除
Aug 06 Javascript
firefox下对ajax的onreadystatechange的支持情况分析
Dec 14 Javascript
js弹出层之1:JQuery.Boxy (二)
Oct 06 Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 Javascript
js字符串引用的两种方式(必看)
Sep 18 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
Dec 24 Javascript
Javascript基础回顾之(三) js面向对象
Jan 31 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
Dec 09 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
Sep 26 Javascript
解决Layui 表格自适应高度的问题
Nov 15 Javascript
80行代码写一个Webpack插件并发布到npm
May 24 Javascript
JS class语法糖的深入剖析
Jul 07 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/04/09 欧美动漫
PHP中的类-什么叫类
2006/11/20 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
详解Nodejs mongoose
2018/06/10 NodeJs
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
Python创建日历实例
2014/08/21 Python
Python中__call__用法实例
2014/08/29 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
Windows和Linux动态库应用异同
2016/07/28 面试题
国际贸易个人求职信范文
2014/01/04 职场文书
优秀班组长事迹
2014/05/31 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
nginx之内存池的实现
2022/06/28 Servers
Vue Element plus使用方法梳理
2022/12/24 Vue.js