js实现酷炫倒计时

382 阅读1分钟

我正在参加「码上掘金挑战赛」详情请看:码上掘金挑战赛来了!

js实现酷炫倒计时动画效果

一、效果展示

image.png

二、码上掘金展示

JsDemo2 - 码上掘金 (juejin.cn)

三、部分代码解析

3.设计思路

其中讲数字进行倒计时处理,使用随机数Math.floor(Math.random()*5); ,将相关的颜色赋值给当前的数字的样式h1.style.color = COLORS[num]; ,这样就直接将其赋予其中,最后结束时clearInterval(timer);将倒计时停止。

2.样式展示

<style>
      *{margin:0;padding:0;}
      body{width:100%;height:100%;overflow:hidden;}
      .box{width:1000px;height:700px;margin:100px auto;}
      .btn{width:100px;height:100px;margin:50px auto 0;font-size:16px;color:#fff;text-align:center;line-height:100px;border-radius:100px;background:#3385ff;}
      .btn:hover{box-shadow: 0 0 10px #77aeff;cursor:pointer;}
      h1{font-size:300px;color:red;text-align:center;}
      h1.active{animation:count .5s;}
      @keyframes count {
        from {
          transform: scale(.1);
          opacity: 1;
        }
        to {
          transform: scale(3.5);
          opacity: 0;
          display:none;
        }
      }
    </style>

3.keyframes的解释说明

css3中keyframes的用法是什么

此属性与animation属性是密切相关的。

keyframes翻译成中文,是"关键帧"的意思,如果用过flash应该对这个比较好理解,当然不会flash也没有任何问题。

使用transition属性也能够实现过渡动画效果,但是略显粗糙,因为不能够更为精细的控制动画过程,比如只能够在指定的时间段内总体控制某一属性的过渡,而animation属性则可以利用@keyframes将指定时间段内的动画划分的更为精细一些。

语法结构:

@keyframes animationname {keyframes-selector {css-styles;}}

参数解析:

animationname:声明动画的名称。

keyframes-selector:用来划分动画的时长,可以使用百分比形式,也可以使用 "from" 和 "to"的形式。"from" 和 "to"的形式等价于 0% 和 100%。建议始终使用百分比形式。