来源:自学PHP网 时间:2018-02-08 10:48 作者: 阅读:次
[导读] CSS animation动画允许动态展现CSS样式的变化。动画包括两个部分:描述动画的样式规则和用于指定动画开始、结束以及中间点样式的关键帧。...
CSS animation动画允许动态展现CSS样式的变化。动画包括两个部分:描述动画的样式规则和用于指定动画开始、结束以及中间点样式的关键帧。 相较于传统的脚本实现动画技术,使用CSS动画有三个主要优点:
CSS3 animation属性是一个用于定义动画的简写属性。animation属性是一个使用逗号分隔的动画定义列表。每一个动画都可以包含以下的动画属性:
animation可以使用逗号来分隔一个或多个动画,每一个动画可以在 单一动画的语法格式为: /* 单一动画的语法格式 */ animation: [animation-name] [animation-duration] [animation-timing-function] [animation-delay] [animation-iteration-count] [animation-fill-mode]; 多重动画的语法格式为: /* 二重动画的语法格式 */ animation: [animation-name] [animation-duration] [animation-timing-function] [animation-delay] [animation-iteration-count] [animation-fill-mode], [animation-name] [animation-duration] [animation-timing-function] [animation-delay] [animation-iteration-count] [animation-fill-mode]; animation中的动画属性使用空格来分隔。当你没有同时使用 任何一个动画属性,如果你没有明确的指出的话,就会被设置为默认值。因此,如果你没有指定动画的名称,是不会有动画被执行的。如果你没有指定动画的持续时间 animation动画的各个属性的初始值: animation-name: none animation-duration: 0s animation-timing-function: ease animation-delay: 0s animation-iteration-count: 1 animation-direction: normal animation-fill-mode: none animation-play-state: running 官方语法animation: <single-animation-name> || <time> || <timing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> /* 其中 */ <single-animation-name> = none | IDENT <single-animation-iteration-count> = infinite | <number> <single-animation-direction> = normal | reverse | alternate | alternate-reverse <single-animation-fill-mode> = none | forwards | backwards | both <single-animation-play-state> = running | paused 示例动画代码: /* 单一动画 */ /* @keyframes name | duration | timing-function | delay | animation-iteration-count */ animation: bounce .3s ease-in-out 1s infinite; /* @keyframes name | duration | timing-function */ animation: rotate-out 1s steps(3, end); /* @keyframes duration | timing-function | delay | iteration-count | direction | fill-mode | play-state | name */ animation: 3s ease-in 1s 2 reverse both paused slidein; /* 多重动画 */ animation: shake .3s alternate, jump 1s cubic-bezier(.17,.67,.85,.06) alternate; 其中, animation-name: bounce; animation-duration: .3s; animation-timing-function: ease-in-out; animation-delay: 1s; animation-iteration-count: infinite; 适用范围
在线演示下面是一个使用 ☺
B
D
A
Y
!
浏览器支持完整的兼容性列表可以查看: 我们可以使用下面的JavaScript代码来检测浏览器是否支持 var animation = false, animationstring = 'animation', keyframeprefix = '', domPrefixes = 'Webkit Moz O ms Khtml'.split(' '), pfx = '', elm = document.createElement('div'); if( elm.style.animationName !== undefined ) { animation = true; } if( animation === false ) { for( var i = 0; i < domPrefixes.length; i++ ) { if( elm.style[ domPrefixes[i] + 'AnimationName' ] !== undefined ) { pfx = domPrefixes[ i ]; animationstring = pfx + 'Animation'; keyframeprefix = '-' + pfx.toLowerCase() + '-'; animation = true; break; } } } 在上面的代码执行完毕之后,如果浏览器支持 如果浏览器不支持 if( animation === false ) { // 如果浏览器不支持animation,在这里编写回退代码 } else { elm.style[ animationstring ] = 'rotate 1s linear infinite'; var keyframes = '@' + keyframeprefix + 'keyframes rotate { '+ 'from {' + keyframeprefix + 'transform:rotate( 0deg ) }'+ 'to {' + keyframeprefix + 'transform:rotate( 360deg ) }'+ '}'; if( document.styleSheets && document.styleSheets.length ) { document.styleSheets[0].insertRule( keyframes, 0 ); } else { var s = document.createElement( 'style' ); s.innerHTML = keyframes; document.getElementsByTagName( 'head' )[ 0 ].appendChild( s ); } } 如果你的浏览器支持 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com