【前言:】javascript
基本上不多动画是须要在页面加载的时候就执行的,因此此例子是 将css3的 animation-keyframes关键帧动画,在btn按钮点击后去追加样式名称,从而达到动画开始播放的效果。css
【实现步骤:】html
1,样式定义:box的初始模样;java
2,样式定义:box-round的样式,此处绑定keyframes;jquery
3,样式定义:关键帧keyframes作好动画执行的属性变化;css3
4,js按钮绑定:作box样式的追加样式 box-round。
web
【图示:】动画
【代码以下:】spa
<script language="javascript" src="http://resunnet.com/js/jquery-1.7.1.min.js"></script> <script> $(function(){ $(".btn").click(function(){ $(".box").addClass("box-round") }) }) </script>
/*关键帧动画*/ @-webkit-keyframes 'box-animation' { from { background: red; color: red; border-radius: 30px; } 50% { background: blue; color: orange; border-radius: 100px; } to { background: orange; color: blue; border-radius: 30px; } } /*初始化box的模样*/ .box{ width:200px; height:200px; line-height:200px; text-align:center; background:#F90; font-size:12px; /*调用animation属性,从而让按钮在载入页面时就具备动画效果*/ } /*此处样式被js所追加*/ .box-round{ -webkit-animation-name: "box-animation"; /*动画名称,须要跟@keyframes定义的名称一致*/ -webkit-animation-duration: 2s;/*动画持续的时间长*/ -webkit-animation-iteration-count: infinite;/*动画循环播放的次数-infinite无限次 可取数值*/ } /*按钮*/ .btn{ width:100px; height:32px; text-align:center; background:#66C; color:#fff; font-size:14px; line-height:32px;}
<div class="box">动画变形</div> <div class="btn">按钮</div>
【延伸问题:】code
如何作鼠标感应后动画执行?
只须要给box 追加一个 .box:hover 样式便可
/*关键帧动画*/ @-webkit-keyframes 'box-animation' { from { background: red; color: red; border-radius: 30px; } 50% { background: blue; color: orange; border-radius: 100px; } to { background: orange; color: blue; border-radius: 30px; } } /*初始化box的模样*/ .box{ width:200px; height:200px; line-height:200px; text-align:center; background:#F90; font-size:12px; /*调用animation属性,从而让按钮在载入页面时就具备动画效果*/ } /*此处样式---->为感应后调用动画过程*/ .box:hover{ -webkit-animation-name: "box-animation"; /*动画名称,须要跟@keyframes定义的名称一致*/ -webkit-animation-duration: 2s;/*动画持续的时间长*/ -webkit-animation-iteration-count: infinite;/*动画循环播放的次数-infinite无限次 可取数值*/ }