_refresher.scss 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. // Scroll refresher (for pull to refresh)
  2. .scroll-refresher {
  3. position: absolute;
  4. top: -60px;
  5. right: 0;
  6. left: 0;
  7. overflow: hidden;
  8. margin: auto;
  9. height: 60px;
  10. .ionic-refresher-content {
  11. position: absolute;
  12. bottom: 15px;
  13. left: 0;
  14. width: 100%;
  15. color: $scroll-refresh-icon-color;
  16. text-align: center;
  17. font-size: 30px;
  18. .text-refreshing,
  19. .text-pulling {
  20. font-size: 16px;
  21. line-height: 16px;
  22. }
  23. &.ionic-refresher-with-text {
  24. bottom: 10px;
  25. }
  26. }
  27. .icon-refreshing,
  28. .icon-pulling {
  29. width: 100%;
  30. -webkit-backface-visibility: hidden;
  31. backface-visibility: hidden;
  32. -webkit-transform-style: preserve-3d;
  33. transform-style: preserve-3d;
  34. }
  35. .icon-pulling {
  36. @include animation-name(refresh-spin-back);
  37. @include animation-duration(200ms);
  38. @include animation-timing-function(linear);
  39. @include animation-fill-mode(none);
  40. -webkit-transform: translate3d(0,0,0) rotate(0deg);
  41. transform: translate3d(0,0,0) rotate(0deg);
  42. }
  43. .icon-refreshing,
  44. .text-refreshing {
  45. display: none;
  46. }
  47. .icon-refreshing {
  48. @include animation-duration(1.5s);
  49. }
  50. &.active {
  51. .icon-pulling:not(.pulling-rotation-disabled) {
  52. @include animation-name(refresh-spin);
  53. -webkit-transform: translate3d(0,0,0) rotate(-180deg);
  54. transform: translate3d(0,0,0) rotate(-180deg);
  55. }
  56. &.refreshing {
  57. @include transition(-webkit-transform .2s);
  58. @include transition(transform .2s);
  59. -webkit-transform: scale(1,1);
  60. transform: scale(1,1);
  61. .icon-pulling,
  62. .text-pulling {
  63. display: none;
  64. }
  65. .icon-refreshing,
  66. .text-refreshing {
  67. display: block;
  68. }
  69. &.refreshing-tail {
  70. -webkit-transform: scale(0,0);
  71. transform: scale(0,0);
  72. }
  73. }
  74. }
  75. }
  76. .overflow-scroll > .scroll{
  77. &.overscroll{
  78. position:fixed;
  79. right: 0;
  80. left: 0;
  81. }
  82. -webkit-overflow-scrolling:touch;
  83. width:100%;
  84. }
  85. .overflow-scroll.padding > .scroll.overscroll{
  86. padding: 10px;
  87. }
  88. @-webkit-keyframes refresh-spin {
  89. 0% { -webkit-transform: translate3d(0,0,0) rotate(0); }
  90. 100% { -webkit-transform: translate3d(0,0,0) rotate(180deg); }
  91. }
  92. @keyframes refresh-spin {
  93. 0% { transform: translate3d(0,0,0) rotate(0); }
  94. 100% { transform: translate3d(0,0,0) rotate(180deg); }
  95. }
  96. @-webkit-keyframes refresh-spin-back {
  97. 0% { -webkit-transform: translate3d(0,0,0) rotate(180deg); }
  98. 100% { -webkit-transform: translate3d(0,0,0) rotate(0); }
  99. }
  100. @keyframes refresh-spin-back {
  101. 0% { transform: translate3d(0,0,0) rotate(180deg); }
  102. 100% { transform: translate3d(0,0,0) rotate(0); }
  103. }