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 06 Javascript
jQuery$命名冲突怎么办如何解决
Jan 16 Javascript
初步了解javascript面向对象
Nov 09 Javascript
整理Javascript流程控制语句学习笔记
Nov 29 Javascript
用JS动态改变表单form里的action值属性的两种方法
May 25 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
Jun 20 Javascript
jQuery实现可拖拽3D万花筒旋转特效
Jan 03 Javascript
微信小程序实现图片预览功能
Jan 31 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
Dec 11 Javascript
解决vue的router组件component在import时不能使用变量问题
Jul 26 Javascript
Js跳出两级循环方法代码实例
Sep 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
Php+SqlServer实现分页显示
2006/10/09 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
图片自动更新(说明)
2006/10/02 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
JS打印组合功能
2016/08/04 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
Python的randrange()方法使用教程
2015/05/15 Python
开源Web应用框架Django图文教程
2017/03/09 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
HTML5使用Audio标签实现歌词同步的效果
2016/03/17 HTML / CSS
成绩单公证书
2014/04/10 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
团组织推优材料
2014/12/29 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
客户答谢会致辞
2015/07/30 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python