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 box-sizing属性
Apr 17 HTML / CSS
Web页面中八种创建多列等高(等高列布局)的实现技术
Dec 24 HTML / CSS
CSS3中的常用选择器使用示例整理
Jun 13 HTML / CSS
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
Oct 15 HTML / CSS
css3 transform过渡抖动问题解决
Oct 23 HTML / CSS
基于HTML5的WebSocket的实例代码
Aug 15 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
Jan 07 HTML / CSS
html5定位获取当前位置并在百度地图上显示
Aug 22 HTML / CSS
关于HTML5语义标签的实践(blog页面)
Jul 12 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
Dec 21 HTML / CSS
HTML实现代码雨源码及效果示例
Feb 25 HTML / CSS
使用CSS设置滚动条样式
Jan 18 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&amp;MYSQL分页原理及实现
2007/01/02 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
微信小程序实现点击图片放大预览
2019/10/21 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
使用Python操作MySQL的一些基本方法
2015/08/16 Python
Python 内置函数complex详解
2016/10/23 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
机械设计制造专业个人求职信
2013/09/25 职场文书
文明餐桌活动方案
2014/02/11 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
Nginx 匹配方式
2022/05/15 Servers