1
0

index.scss 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. $prefixCls: semi;
  2. $module: #{$prefixCls}-queue;
  3. @mixin keyframes-position($position: left) {
  4. $type: translateX;
  5. $ratio: -200%;
  6. @if $position == left {
  7. }
  8. @else if $position == top {
  9. $type: translateY;
  10. }
  11. @else if $position == right {
  12. $ratio: 200%;
  13. }
  14. @else if $position == bottom {
  15. $type: translateY;
  16. $ratio: 200%;
  17. }
  18. @keyframes #{$module}-#{$position}-enter {
  19. from {
  20. transform: #{$type}#{'(' $ratio ')'};
  21. }
  22. to {
  23. transform: 0;
  24. }
  25. }
  26. @keyframes #{$module}-#{$position}-leave {
  27. from {
  28. transform: 0;
  29. }
  30. to {
  31. transform: #{$type}#{'(' $ratio ')'};
  32. }
  33. }
  34. }
  35. @keyframes #{$module}-opacity-enter {
  36. from {
  37. opacity: 0;
  38. }
  39. to {
  40. opacity: 1;
  41. }
  42. }
  43. @keyframes #{$module}-opacity-leave {
  44. from {
  45. opacity: 1;
  46. }
  47. to {
  48. opacity: 0;
  49. }
  50. }
  51. @mixin class-position($position: left) {
  52. $type: translateX;
  53. @if $position == top {
  54. $type: translateY;
  55. }
  56. @else if $position == bottom {
  57. $type: translateY;
  58. }
  59. .#{$module}-#{$position}-leave {
  60. animation-name: #{$module}-#{$position}-leave, #{$module}-opacity-leave;
  61. animation-duration: 0.2s, 0.2s;
  62. }
  63. .#{$module}-#{$position}-enter {
  64. animation-name: #{$module}-#{$position}-enter, #{$module}-opacity-enter;
  65. animation-duration: 0.3s, 0.3s;
  66. }
  67. }
  68. // @keyframes #{$module}-left-enter {
  69. // from {
  70. // transform: translateX(-200%);
  71. // }
  72. // to {
  73. // transform: translateX(0);
  74. // }
  75. // }
  76. // .#{$module}-left-leave {
  77. // animation-name: #{$module}-left-leave, #{$module}-opacity-leave;
  78. // animation-duration: 0.2s, 0.2s;
  79. // }
  80. // .#{$module}-left-enter {
  81. // animation-name: #{$module}-left-enter, #{$module}-opacity-enter;
  82. // animation-duration: 0.3s, 0.3s;
  83. // }
  84. @include keyframes-position(left);
  85. @include keyframes-position(top);
  86. @include keyframes-position(right);
  87. @include keyframes-position(bottom);
  88. @include class-position(left);
  89. @include class-position(top);
  90. @include class-position(right);
  91. @include class-position(bottom);