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实现鼠标滑过鼠标点击代码写法
Dec 26 HTML / CSS
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
Nov 29 HTML / CSS
使用CSS3实现圆角,阴影,透明
Dec 23 HTML / CSS
使用CSS3来制作消息提醒框
Jul 12 HTML / CSS
CSS3实现自定义Checkbox特效实例代码
Apr 24 HTML / CSS
css3翻牌翻数字的示例代码
Feb 07 HTML / CSS
HTML5 本地存储和内容按需加载的思路和方法
Apr 07 HTML / CSS
一款利用html5和css3动画排列人物头像的实例演示
Dec 05 HTML / CSS
HTML5实现自带进度条和滑块滑杆效果
Apr 17 HTML / CSS
video下autoplay属性无效的解决方法(添加muted属性)
May 19 HTML / CSS
详解HTML5中CSS外观属性
Sep 10 HTML / CSS
血轮眼轮回眼特效 html+css
Mar 31 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
谈一谈收音机的高放电路
2021/03/02 无线电
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
非常实用的php验证码类
2016/05/15 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
JavaScript匿名函数用法分析
2015/02/13 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
简单谈谈Python中的闭包
2016/11/30 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
python实现flappy bird游戏
2018/12/24 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
win10安装python3.6的常见问题
2020/07/01 Python
新大陆软件面试题
2016/11/24 面试题
个人查摆剖析材料
2014/02/04 职场文书
分公司负责人任命书
2014/06/04 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技