CSS3动画制作
2015-11-19 13:28
633 查看
CSS3动画制作
rotate 绕中心旋转fadeInPendingFadeOutUp 先渐现,停留2s,再向上滑动并逐渐消失
fadeInUp2D 向上滑动并渐现, 因Animate.css的fadeInUp不支持iphone6 plus,自己用2d重写
效果如下:
详细代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>CSS3动画制作</title> <style> .container { width: 200px; margin: 0 auto; } .redbox { width: 100px; height: 100px; background-color: red; margin: 50px auto; } .bluebox { width: 100px; height: 100px; background-color: red; margin: 50px auto; } .orangebox { width: 100px; height: 100px; background-color: orange; margin: 50px auto; } /*! 2015.03.21 Nelson Kuang */ .animated { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .animated.infinite { -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } /* @creator: Nelson Kuang @name: rotate 绕中心旋转 @usage: <div class="rotate infinite animated">Example</div> */ @-webkit-keyframes rotate { from { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate(-360deg); transform: rotate(-360deg); } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate(0deg); transform: rotate(0deg); } } @keyframes rotate { from { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate(-360deg); transform: rotate(-360deg); } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate(0deg); transform: rotate(0deg); } } .animated.rotate { -webkit-animation-name: rotate; animation-name: rotate; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-duration: 4s; animation-duration: 4s; } /* @creator: Nelson Kuang @name: fadeInPendingFadeOutUp 先渐现,停留2s,再向上滑动并逐渐消失 @usage:可单独使用keyframes或者与Animate.css结合使用 如:<div class="animated infinite fadeInPendingFadeOutUp">Example</div> */ @-webkit-keyframes fadeInPendingFadeOutUp { 0% { opacity: 0; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 25% { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 75% { /*pending*/ opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 100% { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } @keyframes fadeInPendingFadeOutUp { 0% { opacity: 0; } 25% { opacity: 1; } 75% { /*pending*/ } 100% { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } .animated.fadeInPendingFadeOutUp { -webkit-animation-duration: 4s; animation-duration: 4s; -webkit-animation-name: fadeInPendingFadeOutUp; animation-name: fadeInPendingFadeOutUp; } /* @creator: Nelson Kuang @name: fadeInUp2D 向上滑动并渐现, 因Animate.css的fadeInUp不支持iphone6 plus,自己用2d重写 @usage:可单独使用keyframes或者与Animate.css结合使用 如:<div class="animated infinite fadeInUp2D">Example</div> */ @-webkit-keyframes fadeInUp2D { from { opacity: 0; -webkit-transform: translateY(100%); transform: translateY(100%); } to { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); } } @keyframes fadeInUp2D { from { opacity: 0; -webkit-transform: translateY(100%); transform: translateY(100%); } to { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); } } .animated.fadeInUp2D { -webkit-animation-duration: 4s; animation-duration: 4s; -webkit-animation-name: fadeInUp2D; animation-name: fadeInUp2D; } </style> </head> <body> <div class="container"> <div class="redbox infinite rotate"></div> <div class="bluebox fadeInPendingFadeOutUp"></div> <div class="orangebox fadeInUp2D"></div> </div> <script> var objs = document.querySelectorAll(".container>div"); for (var k = 0, length = objs.length; k < length; k++) { objs[k].onclick = function () { var This = this; removeClass(This, 'animated'); setTimeout(function () { addClass(This, 'animated'); }, 100); } } function hasClass(obj, cls) { return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); } function addClass(obj, cls) { if (!hasClass(obj, cls)) { obj.className = obj.className.replace(/(^\s*)|(\s*$)/g, ""); obj.className += " " + cls; } } function removeClass(obj, cls) { if (hasClass(obj, cls)) { var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); obj.className = obj.className.replace(reg, ' '); } } </script> </body> </html>
相关文章推荐
- HTML与CSS入门——第九章 使用颜色
- 修改DeDe标签Pagelist分页样式
- CSS模拟实现alert和confirm实现
- Css 备忘知识点
- CSS实现图片垂直居中
- 基本的九宫格Css布局,用于圆角
- CSS3 box-align 属性
- Webkit Flex伸缩盒模型
- CSS背景图拉伸自适应尺寸
- DIV CSS3 text-shadow字体阴影
- WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式
- WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式
- css 文本缩进 input label 块级元素
- Webkit之CSS基础介绍
- Webkit之理解CSS实现
- js获取css样式(内联,内嵌,外部)
- css3实现钟表特效
- 【南大软院大神养成计划:第三天】与CSS度过的充实的一天(二)
- CSS3画图2
- css盒子模型part3