当前位置:首页 > 日记 > 正文

js CSS3实现卡牌旋转切换效果

js CSS3实现卡牌旋转切换效果

我们经常会在游戏里看到一些几张卡牌左右切换的效果,中间的一张最突出醒目,向左或向右滑动可切换到另一张,今天我们就用CSS3来实现下这种效果。

我们先来看个demo,具体的样式各位可以自己调整:

(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');}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

ES6中javascript实现函数绑定及类

ES6中javascript实现函数绑定及类

函数绑定,事件绑定,详解,功能,电脑软件,本文实例讲述了ES6中javascript实现函数绑定及类的事件绑定功能的方法。分享给大家供大家参考,具体如下:函数绑定箭头函数可以绑定this对象,大大减少了显式绑定this对象的写法(call、apply、bind)。但是,箭…

JavaScript中清空数组的三种方式

JavaScript中清空数组的三种方式

数组,三种,清空,方式,电脑软件,方式1,splicevar ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了 方式2,length赋值为0 这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值。如int[…

Vue.js自定义指令的用法与实例解析

Vue.js自定义指令的用法与实例解析

自定义指令,实例,电脑软件,Vue,js,市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用。本文不讲语法,就讲自定义指令的用法。自定义指令是用来操作DOM的。尽管Vue推崇数据…

jQuery制作全屏宽度固定高度轮播图

jQuery制作全屏宽度固定高度轮播图

全屏,轮播图,宽度,实例,高度,前端新手自己写的,练习一下基本功,也是留下的第一次记录html部分div class="cm-banner"> <div class="cm-banner-list"> <ul id="cm_banner_list"> <!--图片宽度和高度在css中定为1920x300--> …

excel 公式转为文本的方法

excel 公式转为文本的方法

方法,文本,公式,电脑软件,excel,  Excel中的公式是较为常用的功能,具体该如何把公式转为文本呢?下面是小编带来的关于excel 公式转为文本的方法,希望阅读过后对你有所启发!excel 公式转为文本的方法:  公式转文本步骤1:选中J2单元格开始的J…

ps怎么制作透明背景的logo图标?

ps怎么制作透明背景的logo图标?

图标,透明背景,电脑软件,ps,logo,ps中想要制作一个透明背景的lo,但导入的图却有白色背景,该怎么办呢?下面我们就来看看详细的处理方法。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、首先我打开一张个…

JavaScript之排序函数_动力节点Jav

JavaScript之排序函数_动力节点Jav

排序,节点,函数,学院,动力,排序算法排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个对象呢?直接比较数学上的大小是没有意义的,因此,比较的…

Ai怎么复制呢?AI复制方法介绍

Ai怎么复制呢?AI复制方法介绍

方法,电脑软件,Ai,AI,在绘制图形的过程中,我们经常可能会遇到要使用相同的图形或者元素,重新绘制,有时候也不一定一模一样,这时候最好的办法就是复制一个。那么,怎么复制呢?下面就为大家详细介绍一下,来看看吧!步骤:1、为了方便讲解,我们先任意新建一…

微信小程序 滚动到某个位置添加cla

微信小程序 滚动到某个位置添加cla

位置,效果,代码,程序,电脑软件,微信小程序滚动到某个位置添加class效果<scroll-view scroll-y="true" style="height:100vh;" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-top="{{scrollY…

Visual Studio寻找C#程序必要的运

Visual Studio寻找C#程序必要的运

库文件,运行,程序,电脑软件,Visual,  在工程打包中,有时候很头痛的就是运行所需要的库文件不能够全面的包含进来,特别是有时候调用了一系列外部扩展。对于这些问题,我们可以借用Visual Studio的打包功能帮助我们寻找软件运行必须的库文件。…

js 获取json数组里面数组的长度实

js 获取json数组里面数组的长度实

数组,长度,实例,电脑软件,js,作为一个前端页面开发者第一次处理json数据,遇到了‘js 获取json数组里面数组的长度'?竟然不知道 json没有.length属性(真是要嘲讽下自己),少壮不努力老大徒伤悲啊!以前都是去寻求男朋友帮助,但是最近尝试自己去解决…

js 递归和定时器的实例解析

js 递归和定时器的实例解析

递归,实例,电脑软件,js,递归:是一个函数通过调用自身的情况下构成的;首先上个例子:Function factorial(num){ if(num<=1){ return 1; }else{ return num*factorial(num-1); }}这是一个经典的递归阶乘函数,但是在js中这么调用可能会出现一些错误…