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 相关文章推荐
node.js中的socket.io入门实例
Apr 26 Javascript
js实现仿百度瀑布流的方法
Feb 05 Javascript
jQuery消息提示框插件Tipso
May 04 Javascript
Javascript基础_嵌入图像的简单实现
Jun 14 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
Aug 19 Javascript
jQuery实现表格的增、删、改操作示例
Jan 27 jQuery
泛谈JS逻辑判断选择器 || &&
May 24 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
Jul 13 Javascript
vue-cli随机生成port源码的方法
Sep 02 Javascript
layui使用label标签的方法
Sep 14 Javascript
keep-alive不能缓存多层级路由菜单问题解决
Mar 10 Javascript
Element Input输入框的使用方法
Jul 26 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下使用无限生命期Session的方法
2007/03/16 PHP
PHP的加密方式及原理
2012/06/14 PHP
php单例模式实现方法分析
2015/03/14 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
Python MD5文件生成码
2009/01/12 Python
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
python实现清屏的方法
2015/04/30 Python
Python功能键的读取方法
2015/05/28 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
简单了解Django项目应用创建过程
2020/07/06 Python
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
C++的几个面试题附答案
2016/08/03 面试题
蜜蜂引路教学反思
2014/02/04 职场文书
公司司机岗位职责
2014/02/07 职场文书
公司员工检讨书
2014/02/08 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
就业意向书范文
2014/04/01 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
上班旷工检讨书
2015/08/15 职场文书
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js