关于过渡的问题
老师您好:
在我们课程演示的demo中,原有状态在.box选择器里, 末状态在hover里 为什么transition要写在.box中而不是写在:hover里呢? 正常逻辑不应该是在鼠标触碰到的时候添加transition么?
还有,我原来是做动画的,想问下,CSS的过渡动画,是没有运动模糊的嘛?
源自:过渡与动画
2-1 过渡的基本使用
16
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕然然
2021-11-09 12:16:05
同学你好,应该这样来理解会好一点:如果将transition属性添加给div:hover{},那么在鼠标移入的时候会有过渡效果,但是在鼠标离开的时候,就不会有过渡效果了,同学可以自己试一下,css样式会突然地变回去。所以一般情况下,transition属性都是设置给元素本身的,而不是设置给这个元素的某个状态。
另外,关于运动模糊,css没有提供专门的属性,不过可以利用css的过渡属性,来实现运动模糊(在CSS中实现这种效果,需要创建大量相同的元素),代码示例如下:
<html> <head> <style type="text/css"> .container { width: 320px; height: 120px; position: relative; margin: 120px auto; border-radius: 52px; border: 3px dotted #eee; } .dot { position: absolute; background: black; width: 50px; height: 50px; border-radius: 52%; transform: rotate(0deg); top: 25px; left: 25px; opacity: .1; transition: all .75s cubic-bezier(.71, 0, .33, 1.56) 0ms; } .container:hover .dot { transform: rotate(360deg); left: 225px; background: pink; } .two { transition-delay: 3ms; } .three { transition-delay: 6ms; } .four { transition-delay: 9ms; } .five { transition-delay: 11ms; } .six { transition-delay: 14ms; } .seven { transition-delay: 17ms; } .eight { transition-delay: 20ms; } .nine { transition-delay: 23ms; } .ten { transition-delay: 26ms; } </style> </head> <body> <div class="container"> <div class="dot one"></div> <div class="dot two"></div> <div class="dot three"></div> <div class="dot four"></div> <div class="dot five"></div> <div class="dot six"></div> <div class="dot seven"></div> <div class="dot eight"></div> <div class="dot nine"></div> <div class="dot ten"></div> </div> </body> </html>
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星