解决浏览器background-image属性不支持css3动画
2016-05-24 12:20
615 查看
解决浏览器background-image属性不支持css3动画
问题
最近在使用background-image属性来实现css3的逐帧动画时,碰到了个问题。在chrome浏览器上,background-image属性是支持css3动画的,但是到了firefox上,就完全看不到任何动画。原因
通过网上查找,才发现W3C标准中明确background-image属性是不支持动画的,所以firefox由于遵循了该标准,并没有给该属性支持动画。解决过程
解决方法是使用backgrond-position属性,该属性在W3C标准中是支持动画的,因此所有浏览器应该是可以支持的。这在实现时,原来我们可以每一张图片作为一帧,现在就要改成把每一帧的图片拼接到一张图片上,然后根据background-position定位到每一帧的图片,这里我推荐一个比较好的插件grunt-spritesmith,它可以帮助你快速的把你每一帧的图片拼接在一起并生成相应的backgrond-position属性定位信息。从background-image属性换成background-position属性来实现动画后,又遇到了个问题。由于css3动画的关键帧之间是有补间动画,因此background-position属性在每一帧之间的过渡时,它的效果是在这张拼接的图片上的两个定位之间进行移动,这个并不是我想要的。
因此就需要去除该补间动画,直接跳过这关键帧之间的过渡。这就需要应用到animation-timing-function属性,该属性可以使用阶跃函数steps()定义关键帧之间分多少步进行过渡,这里设置为step(1)就表示关键帧之间一步到位,去除了补间动画,这就不会让图片出现在background-position属性之间的移动动画,而是看到直接的图片切换。关于阶跃函数,可具体查看某大神的博客
相关文章推荐
- css学习笔记1
- css3布局
- CSS和JS动画,那个的效率更好。
- css的核心内容 标准流、盒子模型、浮动、定位等分析
- CSS3定位和浮动详解
- CSS3弹性盒模型flex box快速入门 2016.03.16
- HTML CSS + DIV实现整体布局
- CSS之鼠标经过字体光标形状的改变
- 《CSS入门经典》学习笔记
- 奇偶不同样式调取
- css特效
- Flexbox布局(4)
- Photoshop利用画笔和图层样式制作著名游戏中的绿猪图标
- HTML常用鼠标指针样式设置
- swt 常用样式
- CSS3实用方法小记 2016.03.16
- 一些页面布局常见CSS问题
- CSS选择器
- css中的float
- CSS弹性盒模型flex在布局中的应用