位置: IT常识 - 正文
推荐整理分享〖大前端 - 基础入门三大核心之CSS篇㉔〗- 动画效果与实战小案例(大前端最新),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:大前端入门指南,前端 大前端,大前端技术,大前端2021,大前端入门指南,大前端课程,大前端入门指南,大前端需要掌握什么技能,内容如对您有帮助,希望把文章链接给更多的朋友!
我们学习了 “过渡” 之后,结合 “变形” ,已经可以实现动画了,但编写起来比较复杂,而且一定手动来触发这个动画(比如鼠标浮上去),如果说,我们打开网页就可以看到一些动画,该怎么实现呢?这就用到了css3新增的另一个强大的功能—— “动画” 。
⭐️ 动画在css3中可以直接定义动画,这些动画不需要通过鼠标触碰等来触发
🌟 动画的定义定义动画:使用@keyframes来定义动画,keyframes表示“关键帧”,在项目上线前,要补上例如@-webkit-这样的浏览器私有前缀。什么叫关键帧?在制作动画的时候,只需要制作“”起始“和”结束“两种状态,这两种状态就叫做动画的 “关键帧”。中间的帧由css3自动补全。我们看到这里面没有包含动画的时间、速度等内容,这些内容要在动画调用里去实现。
🌟 动画的调用调用动画:使用 animation 属性调用动画,animation就是动画的意思。
上面四个参数和过渡非常的像,大家可以对比记忆。动画还有第五个参数:动画的执行次数。
动画的执行次数有几种写法:
如果想永远执行可以写:animation: r 2s linear 0s infinite;
我们还可以让动画第2、4、6…(偶数次)自动逆向执行,那么需要加上alternate参数即可:animation: r 2s linear 0s infinite alternate;
如果想让动画停止在最后结束状态,那么要加上forwards:animation: r 2s linear 0s forwards;
只看这些很难理解,下面我们来举例说明:
动画效果如下:
🌟 多关键帧动画在之前的例子中,我们都是只定义了两个关键帧:开始状态和结束状态。事实上,我们还可以定义多个关键帧,例如:
百分数代表时间节点,例如20%代表动画总时长的前20%
下面看个例子:
🌟 动画效果实战案例一
发光的灯泡
第一步,先把“灯泡”和“光”通过绝对定位,调整到一起,让光笼罩着灯泡。
可以打开开发者调试工具,通过尝试去寻找移动的值。
第二步,给“光”添加动画,透明度由0变1,再有1变0,无限循环
案例二
穿梭在宇宙中的小火箭
代码如下:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } .box { width: 200px; height: 200px; position: relative; margin: 300px auto; } img { width: 200px; height: 200px; animation: zd .5s linear 0s infinite alternate; } @keyframes zd { from { transform: translateX(20px) translateY(20px); } to { transform: translateX(-20px) translateY(-20px); } } .line { width: 2px; height: 120px; background-color: blue; position: absolute; top: 0; left: 0; animation: yd .8s linear 0s infinite; } .line2 { height: 80px; left: 30px; animation: yd .8s linear .4s infinite; } .line3 { height: 100px; left: 100px; animation: yd .8s linear .5s infinite; } .line4 { height: 200px; left: 180px; animation: yd .8s linear .6s infinite; } @keyframes yd { 0% { transform: rotate(45deg) translateY(-200px); opacity: 0; } 50% { opacity: 1; } to { transform: rotate(45deg) translateY(200px); opacity: 0; } } </style></head><body> <div class="box"> <img src="/imges/huojian.png" alt=""> <div class="line line1"></div> <div class="line line2"></div> <div class="line line3"></div> <div class="line line4"></div> </div></body></html>上一篇:卷,卷,卷,SAM发布不到24h | BAAI、浙大、北大联合推出SegGPT(卷卷卷卷卷)
友情链接: 武汉网站建设