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 命名空间以提高代码重用性
Nov 13 Javascript
jQuery学习笔记之jQuery选择器的使用
Dec 22 Javascript
Javascript 自适应高度的Tab选项卡
Apr 05 Javascript
通过隐藏iframe实现文件下载的js方法介绍
Feb 26 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
Mar 04 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
AngularJS基础 ng-submit 指令简单示例
Aug 03 Javascript
JQuery控制DIV的选取实现方法
Sep 18 Javascript
vue实现商城上货组件简易版
Nov 27 Javascript
vue检测对象和数组的变化分析
Jun 30 Javascript
微信小程序实现运动步数排行功能(可删除)
Jul 05 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
珊瑚虫IP库浅析
2007/02/15 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
网页javascript精华代码集
2007/01/24 Javascript
jquery 表单进行客户端验证demo
2009/08/24 Javascript
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
Python实现k-means算法
2018/02/23 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
python eventlet绿化和patch原理
2020/11/21 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
应聘医学检验人员自荐信
2013/09/27 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
三项教育活动实施方案
2014/03/30 职场文书
婚礼秀策划方案
2014/05/19 职场文书
驻村工作先进事迹
2014/08/14 职场文书
Python数据分析之绘图和可视化详解
2021/06/02 Python