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 相关文章推荐
判断脚本加载是否完成的方法
May 26 Javascript
jQuery Form 页面表单提交的小例子
Nov 15 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 Javascript
推荐6款基于jQuery实现图片效果插件
Dec 07 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
JavaScript、C# URL编码、解码总结
Jan 21 Javascript
详解Javascript获取缓存和清除缓存API
May 25 Javascript
Node.js console控制台简单用法分析
Jan 04 Javascript
vue实现按需加载组件及异步组件功能
May 27 Javascript
详解vue 命名视图
Aug 14 Javascript
ant-design-vue中tree增删改的操作方法
Nov 03 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循环结构实例讲解
2014/02/10 PHP
JavaScript 模拟用户单击事件
2009/12/31 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
汽车驾驶求职信
2013/10/25 职场文书
电子商务自荐书范文
2014/01/04 职场文书
大学毕业感言50字
2014/02/07 职场文书
股份合作协议书
2014/04/12 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
numpy数据类型dtype转换实现
2021/04/24 Python
mysql 带多个条件的查询方式
2021/06/05 MySQL