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 相关文章推荐
纯css3无js实现的Android Logo(有简单动画)
Jan 21 HTML / CSS
CSS3中的clip-path使用攻略
Aug 03 HTML / CSS
详解CSS3中@media的实际使用
Aug 04 HTML / CSS
Css3新特性应用之视觉效果实例
Dec 12 HTML / CSS
详解CSS3中nth-child与nth-of-type的区别
Jan 05 HTML / CSS
详解Html5微信支付爬坑之路
Jul 24 HTML / CSS
基于HTML5 FileSystem API的使用介绍
Apr 24 HTML / CSS
HTML5 在canvas中绘制文本附效果图
Jun 23 HTML / CSS
HTML5自定义属性的问题分析
Aug 16 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
Aug 11 HTML / CSS
AmazeUI 网格的实现示例
Aug 13 HTML / CSS
AmazeUI 等分网格的实现示例
Aug 25 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
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
JavaScript修改css样式style
2008/04/15 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
Python中用Spark模块的使用教程
2015/04/13 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
基于python实现学生信息管理系统
2019/11/22 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
python实现拼接图片
2020/03/23 Python
python 弧度与角度互转实例
2020/04/15 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
毕业证丢失证明
2014/01/15 职场文书
本科生自荐信
2014/06/18 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
趣味运动会新闻稿
2015/07/17 职场文书