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 document.referrer 用法
Apr 30 Javascript
js清除input中type等于file的值域(示例代码)
Dec 24 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
Oct 31 Javascript
微信小程序 底部导航栏目开发资料
Dec 05 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
Dec 13 Javascript
简单三步实现报表页面集成天气
Dec 15 Javascript
angular-ngSanitize模块-$sanitize服务详解
Jun 13 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
Jul 10 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
Oct 24 Javascript
vue watch自动检测数据变化实时渲染的方法
Jan 16 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
May 26 Javascript
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 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网站在线人数统计
2008/04/09 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
js实现微博发布小功能
2017/01/12 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
[00:16]热血竞技场
2019/03/06 DOTA
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
Python中安装easy_install的方法
2018/11/18 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
如何开启linux的ssh服务
2015/02/14 面试题
校园报刊亭创业计划书
2014/01/02 职场文书
校庆活动方案
2014/03/31 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
公司总经理岗位职责范本
2014/08/15 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
民事调解书范文
2015/05/20 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
Android Rxjava3 使用场景详解
2022/04/07 Java/Android