首页 > 代码库 > (一)CSS3动画应用 - CSS3 实现 侧边栏展开收起
(一)CSS3动画应用 - CSS3 实现 侧边栏展开收起
@keyframes
规则用于创建动画。
@keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果
@keyframes 中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果。
通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器:
- 规定动画的名称
- 规定动画的时长
animation
animation 属性是一个简写属性,用于设置动画属性:
- animation-name:规定 @keyframes 动画的名称。
- animation-duration:规定动画完成一个周期所花费的秒或毫秒。默认是 0。
- animation-timing-function:规定动画的速度曲线。默认是 "ease"。
- animation-delay:规定动画何时开始。默认是 0
- animation-iteration-count:规定动画被播放的次数。默认是 1。
- animation-direction:规定动画是否在下一周期逆向地播放。默认是 "normal"。
- animation-fill-mode:规定对象动画时间之外的状态
侧边栏实现
1 /* 动画定义 */ 2 @-webkit-keyframes move_right { 3 from { 4 opacity: 0; 5 } 6 to { 7 opacity: 1; 8 -webkit-transform: translateX(120px); 9 transform: translateX(120px);10 }11 }12 @keyframes move_right {13 from {14 opacity: 0;15 }16 to {17 opacity: 1;18 -webkit-transform: translateX(120px);19 transform: translateX(120px);20 }21 }22 @-webkit-keyframes move_left {23 from {24 opacity: 1;25 }26 to {27 opacity: 0;28 -webkit-transform: translateX(-120px);29 transform: translateX(-120px);30 }31 }32 @keyframes move_left {33 from {34 opacity: 1;35 }36 to {37 opacity: 0;38 -webkit-transform: translateX(-120px);39 transform: translateX(-120px);40 }41 }42 @-webkit-keyframes move_up {43 from {44 opacity: 0;45 }46 to {47 opacity: 1;48 -webkit-transform: translateY(-250px);49 transform: translateY(-250px);50 }51 }52 @keyframes move_up {53 from {54 opacity: 0;55 }56 to {57 opacity: 1;58 -webkit-transform: translateY(-250px);59 transform: translateY(-250px);60 }61 }
1 /* 动画绑定 */ 2 .move_right { 3 -webkit-animation-name : move_right; 4 animation-name : move_right; 5 -webkit-animation-duration : 1s; 6 animation-duration : 1s; 7 -webkit-animation-iteration-count : 1; 8 animation-iteration-count : 1; 9 -webkit-animation-fill-mode : forwards;10 animation-fill-mode : forwards;11 }12 .move_left {13 -webkit-animation-name : move_left;14 animation-name : move_left;15 -webkit-animation-duration : 1s;16 animation-duration : 1s;17 -webkit-animation-iteration-count : 1;18 animation-iteration-count : 1;19 -webkit-animation-fill-mode : forwards;20 animation-fill-mode : forwards;21 }22 .move_up {23 -webkit-animation-name : move_up;24 animation-name : move_up;25 -webkit-animation-duration : 1s;26 animation-duration : 1s;27 -webkit-animation-iteration-count : 1;28 animation-iteration-count : 1;29 -webkit-animation-fill-mode : forwards;30 animation-fill-mode : forwards;31 }32 .fadeIn {33 -webkit-transform : translateX(120px);34 transform : translateX(120px); 35 opacity: 1;36 }37 .fadeInUp {38 -webkit-transform : translateY(-250px);39 transform : translateY(-250px);40 opacity: 1;41 -webkit-transition :-webkit-transform .2s ease-out,opacity .2s ease-out; 42 transition :transform .2s ease-out, opacity .2s ease-out;43 }44 .fadeOutLeft {45 -webkit-transform : translateX(-120px);46 transform : translateX(-120px); 47 opacity: 0.0;48 -webkit-transition :-webkit-transform .2s ease-out,opacity .2s ease-out; 49 transition :transform .2s ease-out, opacity .2s ease-out;50 }
html
1 <!doctype html> 2 <html lang="en" class="fullHeight"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>demo</title> 6 <link rel="stylesheet" type="text/css" href="sidebar.css"> 7 </head> 8 <body class="fullHeight"> 9 <div class=‘sidebar fullHeight‘>sidebar</div>10 <div class="controller">11 <div>12 <button onclick="fadeIn()">淡进</button>13 <button onclick="fadeOut()">淡出</button>14 </div>15 <div>16 <button onclick="fadeInUp()">向上淡进</button>17 <button onclick="fadeOutLeft()">向左淡出</button>18 </div>19 </div>20 <script src="sidebarEffects.js"></script>21 </body>22 </html>
加入JS
1 <script> 2 var sidebarEl = document.querySelector(".sidebar"); 3 4 function fadeIn (e) { 5 sidebarEl.className = ‘sidebar fullHeight‘; 6 sidebarEl.style.top = ‘0px‘; 7 sidebarEl.style.left = ‘0px‘; 8 sidebarEl.classList.add(‘move_right‘); 9 }10 function fadeOut (e) {11 sidebarEl.className = ‘sidebar fullHeight‘;12 sidebarEl.style.left = ‘120px‘;13 sidebarEl.classList.add(‘move_left‘);14 }15 function fadeInUp(e) {16 sidebarEl.className = ‘sidebar fullHeight‘;17 sidebarEl.style.top = ‘250px‘;18 sidebarEl.style.left = ‘120px‘;19 sidebarEl.classList.add(‘move_up‘);20 21 }22 function fadeOutLeft(e) {23 sidebarEl.className = ‘sidebar fullHeight‘;24 sidebarEl.style.top = ‘0px‘;25 sidebarEl.style.left = ‘120px‘;26 sidebarEl.classList.add(‘move_left‘);27 28 }29 </script>
(一)CSS3动画应用 - CSS3 实现 侧边栏展开收起
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。