css3翻牌翻数字的示例代码


Posted in HTML / CSS onFebruary 07, 2020

今天接到公司一任务,效果图如下:

css3翻牌翻数字的示例代码

没有具体说做什么效果,但是想着纯数字转换太简单了,然后就顺手做了一个翻牌的效果。

css3翻牌翻数字的示例代码

效果预览,新窗口打开:https://codepen.io/andy-js/pen/ExaGxaL

首先做一些页面布局:

<ul></ul>
body{background: #000;}
     ul{
         list-style: none;
         margin:100px 0;
         display: flex;
         justify-content:center;
         line-height: 56px;
         height:56px;
         font-size: 39.6px;
         color: #FFFFFF;
         transform-style:preserve-3d;
         perspective:1000px;
     }
     li{
        height:56px;
        margin:0 10px;
        background:none;
        width:16px;
        position: relative;
     }
     .num{
        width:46px;
        transform-style:preserve-3d;
        perspective:1000px;
        transform:rotateY(0deg);
        transition: 1s all ease;
    }
    p{
        height:56px;
        width:46px;
        text-align: center;
        background: #EC2C5C;
        border-radius: 2.57px;
        position: absolute;
    }
    
    p:nth-child(2){
        transform: scalex(-1) translateZ(-1px);
    }

然后通过动态插入,模拟了这么一个效果
利用了transition来做的动画
利用transform:rotateY来做的翻转
在翻转之前先将另一个数字scalex左右镜像之后translateZ(-1px)移动到另一个数字的后面,这样翻转过来就能看到镜像的数字
不是很完善,还有很多可以改进的地方
全部代码如下:

<script>
var number=9999993,
    numArr=addComma(number),
    aNum=[],
    oUl=document.getElementsByTagName('ul')[0];
for(let i=0;i<numArr.length;i++){
    let li=document.createElement('li');
    oUl.appendChild(li);
    if(numArr[i]==',')
    li.innerHTML=',';
    else
    li.innerHTML='<p>'+numArr[i]+'</p><p></p>',
    li.className='num',
    li.deg=0,
    aNum.push(li);
};

setInterval(function(){
    let changeNum=number+1+'';
    let changeArr=addComma(changeNum),
        difference=changeArr.length-numArr.length;
    if(difference){
        for(let i=0;i<difference;i++){
            let li=document.createElement('li');
            oUl.insertBefore(li,oUl.children[0]);
            if(changeArr[i]==',')
            li.innerHTML=',';
            else
            li.innerHTML='<p>'+changeArr[i]+'</p><p></p>',
            li.className='num',
            li.deg=0,
            aNum.unshift(li);
        };
    };
    number+='';
    for(let i=changeNum.length-number.length;i<changeNum.length;i++){
        if(changeNum[i]==number[i])continue;
        let deg=aNum[i].deg;
        aNum[i].deg=deg=deg+180;
        let index=(deg/180)%2;
        aNum[i].children[index].innerHTML=changeNum[i];
        aNum[i].style.transform='rotateY('+deg+'deg)';
    };
    number=Number(changeNum);
    numArr=changeArr;
},2000);


function addComma(num){    //每隔三位数加一个豆号
    return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
};
</script>

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

HTML / CSS 相关文章推荐
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
Dec 28 HTML / CSS
浏览器实现移动端高性能css3动画(开启gpu加速)
Dec 23 HTML / CSS
使用CSS3美化HTML表单的技巧演示
May 17 HTML / CSS
利用 CSS3 实现的无缝轮播功能代码
Sep 25 HTML / CSS
CSS3动画和HTML5新特性详解
Aug 31 HTML / CSS
HTML5 本地存储实现购物车功能
Sep 07 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
Oct 20 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
Jan 07 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
May 08 HTML / CSS
12个不为大家熟知的HTML5设计小技巧
Jun 02 HTML / CSS
CSS3 制作的彩虹按钮样式
Apr 11 HTML / CSS
HTML页面点击按钮关闭页面的多种方式
Dec 24 HTML / CSS
css3使用animation属性实现炫酷效果(推荐)
Feb 04 #HTML / CSS
CSS3中新增的对文本和字体的设置
Feb 03 #HTML / CSS
CSS3动画特效在活动页中的应用
Jan 21 #HTML / CSS
如何用border-image实现文字气泡边框的示例代码
Jan 21 #HTML / CSS
CSS3实现网站商品展示效果图
Jan 18 #HTML / CSS
2分钟教你实现环形/扇形菜单(基础版)
Jan 15 #HTML / CSS
css3一个简易的 LED 数字时钟实现方法
Jan 15 #HTML / CSS
You might like
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
javascript 短路法代码精简
2009/08/20 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
vue配置请求本地json数据的方法
2018/04/11 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python中functools模块函数解析
2017/03/12 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
python的scipy实现插值的示例代码
2019/11/12 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
开办饭店创业计划书
2013/12/28 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
外贸业务员求职信
2014/06/16 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
身份证丢失证明
2015/06/19 职场文书
组织委员竞选稿
2015/11/21 职场文书
安全生产培训心得体会
2016/01/18 职场文书
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers