(一)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>
View Code

加入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)