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实现粒子旋转伸缩加载动画
Apr 22 HTML / CSS
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
Aug 18 HTML / CSS
css3 border-image使用说明
Jun 23 HTML / CSS
CSS中几个与换行有关的属性简明总结
Apr 15 HTML / CSS
纯css3实现照片墙效果
Dec 26 HTML / CSS
CSS3实现银灰色动画效果的导航菜单代码
Sep 01 HTML / CSS
详解使用HTML5的classList属性操作CSS类
Oct 13 HTML / CSS
html5使用canvas画空心圆与实心圆
Dec 15 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
Feb 18 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
Jul 16 HTML / CSS
关于CSS浮动与取消浮动的问题
Jun 28 HTML / CSS
css布局巧妙技巧之css三角示例的运用
Mar 16 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将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
Python中扩展包的安装方法详解
2017/06/14 Python
Python之用户输入的实例
2018/06/22 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
什么是python的id函数
2020/06/11 Python
python 实现逻辑回归
2020/12/30 Python
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
物流管理毕业生自荐信范文
2014/03/15 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书