css3动画如何在动作结束时保持该状态不变

html-css022

css3动画如何在动作结束时保持该状态不变,第1张

animation-fill-mode : none | forwards | backwards | both

none:不改变默认行为。  

forwards :当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。  

backwards:在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。  

both:向前和向后填充模式都被应用。

扩展资料:

CSS3是CSS(层叠样式表)技术的升级版本,于1999年开始制订,2001年5月23日W3C完成了CSS3的工作草案,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块   。

CSS演进的一个主要变化就是W3C决定将CSS3分成一系列模块。浏览器厂商按CSS节奏快速创新,因此通过采用模块方法,CSS3规范里的元素能以不同速度向前发展,因为不同的浏览器厂商只支持给定特性。但不同浏览器在不同时问支持不同特性,这也让跨浏览器开发变得复杂。

参考资料:百度百科-CSS3

新建keyframes元素,命名为myFirst。设置百分比,编写Animation属性对属性值的引用。为了开考虑兼容性问题,可以多写几个备选,详细步骤:

1、首先,准备好HTML前期工作以及对DIV的一个简单设置。

2、然后,新建keyframes元素,命名为myFirst。

3、然后,可以在设置百分比,不仅仅只能设置4个,大家可以根据需求设置。

4、这时候,可以为他写上各种百分比的颜色。

5、此时,就能编写Animation属性对属性值的引用。

6、为了开考虑兼容性问题,可以多写几个备选。

transform 不会使DOM脱离文档流,当通过 translateX 等属性值移动了元素后,它仍然占据原来的位置。

好处是, transform 制作的动画会直接进入合成阶段,避开重排重绘,可以通过 Performance 录制面板来查看 transform 动画的效率。

MDN animation

深入浅出CSS动画

MDN animate()

监听 CSS animation 动画的事件:

这些监听事件对 animate() 是无效的。

页面顶部经常会见到水平无限轮播的公告。

由于轮播的内容是动态的,可能很多,也可能很少,如果公告内容的宽度没有超过最大宽度限制,那么就不应该轮播,如果超过了,则发起轮播。

假设我们永远只有一条最新的公告

原理:当一次动画执行结束时,影子内容的头部刚好对准轮播内容的初始位置,那么下次动画开始时,轮播内容将重新回到初始位置,由于影子内容与轮播内容相同,那么就给人造成一种无限轮播的错觉。

逻辑实现:父元素设置了 overflow: hidden ,又想要获取父元素、子元素的真实宽度,那么可以通过 scrollWidth 获取。

兼容性:如果不支持 animate() ,那么我们可以动态创建 <style>+ @keyframes ,插入 <head>, 但也要记得移除。