关于css3的动画效果animate的使用说明及浏览器兼容的介绍

这篇文章主要介绍了关于css3的动画效果animate的使用说明及浏览器兼容的介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

昨天突然看到jing.fm(这个音乐网站非常不错,很多效果我都很喜欢,如果你有兴趣,可以去围观下)上音乐播放时,专辑的转动效果很不错,所以准备自己动手写下,以备后用。结果第一次使用animate就遇到了坑爹的事情,特吐槽下

好久没更新blog,上次发文(11月8日)到现在刚好一个月,期间项目上的东西比较多,一时觉得时间比较紧,没来得及更新。这个星期总算是告一段落,补上几篇技术性的文章。好吧,第一篇是关于css3动画的使用。
昨天突然看到jing.fm(这个音乐网站非常不错,很多效果我都很喜欢,如果你有兴趣,可以去围观下)上音乐播放时,专辑的转动效果很不错,所以准备自己动手写下,以备后用。结果第一次使用animate就遇到了坑爹的事情,特吐槽下。
一、最终的效果
关于css3的动画效果animate的使用说明及浏览器兼容的介绍
如上图所示,最终是想让这个专辑的图片转动起来,模拟出唱片播放的效果(你可以去jing.fm上看看真实的效果,很赞,现在很多音乐网站都添加了这个效果)。
二、结构代码

    音乐专辑播放模拟    

从上面的代码可以看出,由于是使用css3强大的动画效果,所以我的结构定义的非常简单(在符合语义的前提下),同时没有引用到javascript脚本文件。
musicBox来限定外围框的大小,内部的cover用来显示专辑封面图片,这个图片是下图左边图片这样的,四四方方,不是圆形,所以我在后面做了个mask的p,它不做其他事情,只是用来容纳一个遮罩(下图右边图片),盖住图片圆形之外的部分。
关于css3的动画效果animate的使用说明及浏览器兼容的介绍    关于css3的动画效果animate的使用说明及浏览器兼容的介绍
三、css3样式表 

@charset utf-8; /* common: rotateCD */ @-webkit-keyframes myrotate{ 0%{ -webkit-transform : rotate(0deg); } 100%{ -webkit-transform : rotate(360deg); } } @-moz-keyframes myrotate{ 0%{ -moz-transform : rotate(0deg); } 100%{ -moz-transform : rotate(360deg); } } @-ms-keyframes myrotate{ 0%{ -ms-transform : rotate(0deg); } 100%{ -ms-transform : rotate(360deg); } } @-o-keyframes myrotate{ 0%{ -o-transform : rotate(0deg); } 100%{ -o-transform : rotate(360deg); } } @keyframes myrotate{ 0%{ transform : rotate(0deg); } 100%{ transform : rotate(360deg); } } .rotateCD{ -webkit-animation: myrotate 9.5s infinite linear; -moz-animation: myrotate 9.5s infinite linear; -ms-animation: myrotate 9.5s infinite linear; -o-animation: myrotate 9.5s infinite linear; animation: myrotate 9.5s infinite linear; -webkit-animation-play-state: running; -moz-animation-play-state: running; -ms-animation-play-state: running; -o-animation-play-state: running; animation-play-state: running; } /* module: bd */ #bd{width: 960px;margin: 200px auto 0;} /* module: musicBox */ #musicBox{position: relative;width: 430px;height: 430px;margin: 0 auto;overflow: hidden;} #musicBox .cover{width: 300px;height: 300px;margin: 65px;background: url(../img/music1.jpg) 0 0 no-repeat;} #musicBox .mask{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(../img/playerMask.png) 0 0 no-repeat;}

rotateCD这部分的代码兼容了多种高级浏览器(当然是支持css3的),设置了动画执行的时间和其他一些设置,你可以查询animate的更多知识来深入了解。
对于上面的关于动画关键帧keyframes的写法,踩了比较多的坑,一开始,我是看《HTML5与CSS3权威指南》上的例子,它只写了chrome下的写法(比较坑爹,我猜测估计是作者认为其他浏览器的写法与此类似,所以让读者自己去摸索),我想当然的把其他浏览器的兼容性rotate设置写成了,如下面的代码所示:

立即学习“前端免费学习笔记(深入)”;

@-webkit-keyframes myrotate{ 0%{ -webkit-transform : rotate(0deg); -moz-transform : rotate(0deg); -ms-transform : rotate(0deg); -o-transform : rotate(0deg); transform : rotate(0deg); } ....

这样导致的结果就是,chrome和safari下动画正常,FF、opera和IE下均无动画。其实这部分很好理解,myrotate的关键帧只是对webkit做了特殊说明,其他浏览器根本对此置之不理,所以没有动画的效果。
因此,我们在写关键帧适配样式的时候,一定要写成下面的形式:

@-webkit-keyframes myrotate{ 0%{ -webkit-transform : rotate(0deg); } ... @-moz-keyframes myrotate{ 0%{ -moz-transform : rotate(0deg); } ... @-ms-keyframes myrotate{ 0%{ -ms-transform : rotate(0deg); } ... @-o-keyframes myrotate{ 0%{ -o-transform : rotate(0deg); } ... @keyframes myrotate{ 0%{ transform : rotate(0deg); } ...

opera浏览器还有个比较怪异的地方,它偏爱@keyframes myrotate{…},而对@-o-keyframes myrotate{…}不感冒,所以你发现两者只存其一的时候,前者可以实现动画,而后者不能实现动画效果。我一直对此很是不解,后来找到关于opera的介绍,说它是严格的执行W3C网页标准。这样想想,就明白了为什么它如此偏爱@keyframes myrotate{…}了。
四、总结
css3看起来非常美好,但是实际使用中还是存在不少的不确定性。如果不能看到已经实现的代码模板,你很难确信自己的代码格式就一定正确。所以你可以到一些不错的网站来观察各种动画效果,选择自己喜欢的动画并生成代码,下载下来后再按照自己的需求来编写动画代码。这样会让你的动画效果实现起来事半功倍(不要担心它达不到你的要求,上面有很多的效果,你可以自己组合,只要你的想象力够丰富)。
好吧,本文到此结束。
PS:文中使用到的浏览器为chrome(21.0.1180.15)、safari5.1.7(7534.57.2)、opera(12.11)、FF(17.0.1)和IE10(10.0.9200.16438)。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

CSS中使用Flexbox来达到居中效果的方法实现

如何使用css3实现input输入框颜色渐变发光的效果

以上就是关于css3的动画效果animate的使用说明及浏览器兼容的介绍的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 01:30:52
下一篇 2025年12月24日 01:31:04

相关推荐

  • cs如何实现翻转效果

    css实现翻转效果的方法:1、将外层元素设置perspective;2、将第二包裹层翻转180度,同时设置过渡速度;3、设置“backface-visibility”;4、设置“z-index”属性;5、让“back”最开始就翻转180度。 本文操作环境:windows7系统、HTML5&&…

    2025年12月24日
    000
  • 使用CSS实现的几种进度条

    (学习视频分享:css视频教程) 进度条是一个非常常见的功能,实现起来也不难,一般我们都会用 div 来实现。 作为一个这么常见的需求, whatwg 肯定是不会没有原生组件提供(虽然有我们也不一定会用),那么就让我们来康康有哪些有意思的进度条实现方式。 常规版 — div 一波流 这是比较常规的实…

    2025年12月24日 好文分享
    000
  • css3动画之如何添加多种变换效果(代码示例)

    本篇文章给大家带来的内容是css3动画之如何添加多种变换效果(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 在之前的文章【css3动画之transform属性与transition属性的简单使用】中介绍了添加一种变换效果实现简单动画变换的方法,但是只有一种变换效果的动…

    2025年12月24日
    000
  • CSS3学习之页面加载动画(四)

    本篇文章再给大家分享6种css3的页面加载动画。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 在之前的文章【CSS3学习之页面加载动画(三)】中又分享了6个CSS3的加载动画,今天继续分享(标题接上一次),图片看得不真切。 十七、效果十七 三个小球,纵向居中,间距撑开,依次改变小…

    2025年12月24日 好文分享
    000
  • CSS3学习之页面加载动画(五)

    之前发了四篇,二十二个效果,本篇文章再给大家分享6种css3的页面加载动画,总计二十八个页面加载动画效果。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 在之前的文章【CSS3学习之页面加载动画(四)】中又分享了6个CSS3的加载动画,今天继续分享(标题接上一次)。 二十三、效果二…

    2025年12月24日 好文分享
    000
  • css中浮动的label的介绍(附案例)

    本篇文章给大家带来的内容是关于css中浮动的label的介绍(附案例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在web项目中,有一个很重的模块就是登陆/注册模块,这个模块的主体部分就是一个form表单,这个form表单包含两个重要input组(用户名/密码),每个input…

    好文分享 2025年12月24日
    000
  • CSS3学习之页面加载动画(二)

    本篇文章给大家分享6种css3的页面加载动画。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 在之前的文章【CSS3学习之页面加载动画(一)】中已经分享了四个CSS3的加载动画,今天继续(标题接上一次)。 请注意:代码中的关键帧动画有的用的linear曲线,而有的用的是ease曲线…

    2025年12月24日 好文分享
    000
  • CSS3学习之页面加载动画(三)

    本篇文章再给大家分享6种css3的页面加载动画。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 在之前的文章【CSS3学习之页面加载动画(二)】中又分享了6个CSS3的加载动画,今天继续分享(标题接上一次),图片看得不真切。 十一、效果十一 四个小球分别包含于四个正方形p,将小球相…

    2025年12月24日 好文分享
    000
  • CSS3动画@keyframes图片变大变小颜色变化

    在我做公司官网的时候也会帮着写一些游戏的静态页,今天产品要求为了突出一个按钮,他要有颜色的变化而且要变大变小,然后我就在网上搜了下呼吸灯和其他的案例,写了个小damo,看着还有些魔性嘞。 html: @@##@@ 原理是这样的:body相对定位,.change绝对定位到.color上面,大小和.co…

    好文分享 2025年12月24日
    000
  • css3动画之transition和animation属性介绍

    本文给大家介绍实现css3动画的transition和animation属性,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 tradition一共以下有4个属性: transition-property 过渡属性 transition-duration 完成动画所需时间,以秒或者…

    好文分享 2025年12月24日
    000
  • 关于CSS3的animate如何实现“…”loading动画效果(一)

    实现如图所示的点点点loading效果: 一:CSS3 animation实现代码 html代码: 提交订单中… css代码: .ani_dot { font-family: simsun; }:root .ani_dot { /* 这里使用Hack是因为IE6~IE8浏览器下, vertica…

    2025年12月23日
    000
  • 关于CSS3的animate如何实现“…”loading动画效果(二)

    box-shadow实现的打点效果 简介 box-shadow理论上可以生成任意的图形效果,当然也就可以实现点点点的loading效果了。 实现原理 html代码,首先需要写如下html代码以及class类名: 订单提交中 css代码 .dotting { display: inline-block…

    2025年12月23日
    000
  • 解析CSS3 transition浏览器兼容性

    1、兼容性 根据canius,transition 兼容性如下图所示: p{width:100px;height:100px;background:blue;transition:width 2s;-moz-transition:width 2s; /* Firefox 4 */-webkit-tr…

    2025年12月23日 好文分享
    000
  • box-shadow IE8兼容处理方法介绍

    根据canisue(http://caniuse.com/#search=box-shadow),box-shadow兼容性如下图所示: 测试代码: * { margin: 0; padding: 0; } #header { width: 400px; height: 400px; margin:…

    2025年12月23日 好文分享
    000
  • border-radius IE8兼容处理方法介绍

    根据canisue(http://caniuse.com/#search=border-radius),border-radius兼容性如下图所示: 测试代码: * { margin: 0; padding: 0; } #header { width: 400px; height: 400px; m…

    2025年12月23日 好文分享
    000
  • html5动画效果怎么设置_HTML5 CSS3动画关键帧用法

    关键帧动画(@keyframes)结合animation属性可实现HTML5动态效果。1. 用@keyframes定义0%到100%的样式变化;2. 通过animation-name、duration等子属性控制动画行为;3. 使用简写animation: name 3s linear infini…

    2025年12月23日
    000
  • HTML如何实现动画效果?CSS3动画怎么触发?

    css3动画的触发方式主要有:1. 伪类触发,如:hover、:active等,适用于用户交互下的简单动画;2. javascript控制类名,通过添加或移除类名触发动画,灵活性高,适合复杂逻辑控制;3. 媒体查询触发,根据屏幕尺寸或设备方向变化应用动画,适用于响应式设计;4. :target伪类触…

    2025年12月22日 好文分享
    000
  • HTML中固定定位限制的原因探析

    探究HTML中固定定位受限的原因,需要具体代码示例 HTML是一种编程语言,常用于创建网页和应用程序的结构和内容。在HTML中,有一种定位方式被称为固定定位(position:fixed)。固定定位将一个元素相对于浏览器窗口的位置进行定位,使其不会随着页面滚动而改变位置。然而,固定定位的使用有一些限…

    2025年12月21日
    000
  • css颜色在不同浏览器中的兼容性问题

    使用十六进制颜色值并结合CSS变量、备用透明度方案及跨浏览器测试,可有效解决浏览器间颜色解析差异问题。 不同浏览器对CSS颜色的解析确实存在一些细微的差异,这可能会导致在某些浏览器上颜色显示不一致。要解决这个问题,我们需要了解这些差异并采取相应的策略。 解决方案 了解颜色值的差异: 不同浏览器对颜色…

    2025年12月2日 web前端
    200
  • CSS工具Autoprefixer如何兼容不同浏览器_使用Autoprefixer自动添加厂商前缀

    Autoprefixer根据browserslist配置自动添加必要浏览器前缀,基于Can I Use数据判断兼容性,无需手动编写前缀,结合构建工具使用,提升开发效率。 Autoprefixer 是一个基于 PostCSS 的 CSS 工具,它能自动为你的 CSS 规则添加浏览器厂商前缀(如 -we…

    2025年12月1日 web前端
    200

发表回复

登录后才能评论
关注微信