CSS就可以!animation 与他的好夥伴 @keyframes

如果说HTML是网页开发的第一堂课,CSS差不多就会再第二堂课出现了,好消息是,只要用第二堂学到的语法,就可以制作 Web Motion 啦!
而且若真的要细谈效能的话,CSS这边能把效果写出来、符合开发情境与需求 (浏览器支援度问题等),那基本上就使用CSS这边写就是相当合适的选择。

接下来就直接进入正题
CSS动画基本架构:animation 与他的好夥伴 @keyframes

.my-div{
animation: my-animation 3s;
}
@keyframes my-animation{
  0%{
      opacity:0;
    }
  100%{
      opacity:1;
    }
}

第一步、keyframes给个名字,定义至少两个关键影格状态
keyframe用@标签开头,後面带上一个命名,里面设定动画渐变过程中的「关键影格」,关键影格之间有状态数值的差异,加上时间即可构成「动」的变化。

@keyframes my-animation{
  0%{
      opacity:0;
    }
  100%{
      opacity:1;
    }
}

这边至少要有起点与终点的两个状态,当然也可以加上速率的差异,例如上方的范例,从不透明度为0开始 (就是完全透明的状态),到终点是完全不透明,如果是没有加上速度相关控制,在最中间的50%时,opacity也会来到0.5,如果希望是带有先快後慢的效果,可以在50%的时候增加设定(当然可以把opacity:0.5设定在50%之前也可以,程序写法很自由的~)

@keyframes my-animation-two{
  0%{
      opacity:0;
    }
    50%{
      opacity:0.8;  
    }
  100%{
      opacity:1;
    }
}

第二步、把keyframes动画利用animation加到网页里
利用「animation」即可把刚刚定义好的 keyframes 加进指定的网页元件中,如之前提到「时间」是Motion的灵魂元素,因此这边除了需要放入keyframes名字,也须把持续多久的时间加进:

.my-div{
animation: my-animation 3s;
}

keyframes可以设定很多个,若希望在使用两个keyframes特效,可以用逗号隔开:

.my-div{
animation: my-animation 3s, my-animation-two 3s;
}

<<:  day5: CSS style 规划 CSS module (global CSS, CSS module)

>>:  Golang 转生到web世界 - gin新手村

Day-07 建立/开启/移除专案

建立专案  Step1-点击File/New/New Priject  Step2-选择Activ...

day2_arm 与 x86 的意思与特色

cpu 的架构是指什麽? cpu 是电脑作爲逻辑处理的重要核心,而我们会需要特殊的语言与 cpu 对...

Basic NetSuite Customization Glossary

客制化, Customization 在 NetSuite 内提到 客制化 通常表示的是, 流程变更...

Day-17 Excel手把手作图表(二)

今日练习档 ԅ( ¯་། ¯ԅ) 是的,今天即将延续昨天的部分继续设计Excel图表,如果您还没有看...

DAY30 - 写在30天之後:成为前端工程师一年後的心路历程

终於到最後一天了~~ 刚好从去年铁人赛到今年是我从切版转职走到"更完整的前端工程师&quo...