解决浏览器background-image属性不支持css3动画
2016-06-23 10:50
661 查看
问题
最近在使用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属性之间的移动动画,而是看到直接的图片切换。
相关文章推荐
- Sublime Less 自动编译成css
- CSS div水平垂直居中和div置于底部
- CSS高级
- css px 和 % ,em 等混合计算宽度或者高度
- HSSFWorkbook 设计Excel样式
- CSS 样式异步加载
- 外部JS文件调用外部的Css文件
- 值和单位
- Table在DIV中以滚动条方式显示
- 清除浮动——clearfix
- 如何把Button按钮样式换成ImageButton?
- 简单重写类型为radio的input元素样式
- 用CSS设置当鼠标移动到图片内时显示文字
- 使用CSS3滤镜让图片反转颜色
- JQ 特效下拉列表 写出与css一样的效果
- CSS外部样式表+伪选择器
- css居中方法详解
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色