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 相关文章推荐
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
Jan 03 Javascript
javascript中expression的用法整理
May 13 Javascript
js阻止冒泡和默认事件(默认行为)详解
Oct 20 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
Nov 03 Javascript
jquery插件bootstrapValidator表单验证详解
Dec 15 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
May 20 jQuery
基于js中document.cookie全面解析
Sep 14 Javascript
Node.js搭建WEB服务器的示例代码
Aug 15 Javascript
微信小程序实现上拉加载功能
Nov 20 Javascript
JS实现密码框效果
Sep 10 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连mysql和oracle数据库性能比较
2006/10/09 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
鱼油专家:Omegavia
2016/10/10 全球购物
《将心比心》教学反思
2014/04/08 职场文书
学习十八大标语
2014/10/09 职场文书
结婚保证书
2015/01/16 职场文书
长城导游词
2015/01/30 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server