ns-loading.vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <view class="mescroll-downwarp">
  3. <view class="downwarp-content">
  4. <view class="downwarp-progress mescroll-rotate" style="transform" v-if="isRotate"></view>
  5. <view class="downwarp-tip">{{ downText }}</view>
  6. </view>
  7. </view>
  8. </template>
  9. <script>
  10. export default {
  11. name: 'ns-loading',
  12. props: {
  13. downText: {
  14. type: String,
  15. default: '加载中'
  16. },
  17. isRotate: {
  18. type: Boolean,
  19. default: false
  20. }
  21. },
  22. data() {
  23. return {
  24. isShow: true
  25. };
  26. },
  27. methods: {
  28. show() {
  29. this.isShow = true;
  30. },
  31. hide() {
  32. this.isShow = false;
  33. }
  34. }
  35. };
  36. </script>
  37. <style lang="scss">
  38. /* 下拉刷新区域 */
  39. .mescroll-downwarp {
  40. width: 100%;
  41. height: 100%;
  42. text-align: center;
  43. }
  44. /* 下拉刷新--内容区,定位于区域底部 */
  45. .mescroll-downwarp .downwarp-content {
  46. width: 100%;
  47. min-height: 60rpx;
  48. padding: 20rpx 0;
  49. text-align: center;
  50. }
  51. /* 下拉刷新--提示文本 */
  52. .mescroll-downwarp .downwarp-tip {
  53. display: inline-block;
  54. font-size: 28rpx;
  55. color: gray;
  56. vertical-align: middle;
  57. margin-left: 16rpx;
  58. }
  59. /* 下拉刷新--旋转进度条 */
  60. .mescroll-downwarp .downwarp-progress {
  61. display: inline-block;
  62. width: 32rpx;
  63. height: 32rpx;
  64. border-radius: 50%;
  65. border: 2rpx solid gray;
  66. border-bottom-color: transparent;
  67. vertical-align: middle;
  68. }
  69. /* 旋转动画 */
  70. .mescroll-downwarp .mescroll-rotate {
  71. animation: mescrollDownRotate 0.6s linear infinite;
  72. }
  73. @keyframes mescrollDownRotate {
  74. 0% {
  75. transform: rotate(0deg);
  76. }
  77. 100% {
  78. transform: rotate(360deg);
  79. }
  80. }
  81. </style>