graceProgressButton.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <template>
  2. <view class="graceProgressButton" :class="[val > 0 && val < 100 ? 'ganimate' : '']" :style="{height:height+'rpx', lineHeight:height+'rpx', borderRadius:borderRadius, background:background}">
  3. <text :style="{fontSize:fontSize+'rpx', color:color}">{{(val > 0 && val < 100) ? progressText + val + '%' : buttonText}}</text>
  4. </view>
  5. </template>
  6. <script>
  7. export default{
  8. props:{
  9. height : {
  10. type : Number,
  11. default : 80
  12. },
  13. fontSize : {
  14. type : Number,
  15. default : 30
  16. },
  17. val : {
  18. type : Number,
  19. default : 0
  20. },
  21. buttonText : {
  22. type : String,
  23. default : ""
  24. },
  25. color : {
  26. type : String,
  27. default : "#FFFFFF"
  28. },
  29. background:{
  30. type : String,
  31. default : "#5CC72F"
  32. },
  33. borderRadius : {
  34. type : String,
  35. default : "6rpx"
  36. },
  37. progressText : {
  38. type : String,
  39. default : "已下载 : "
  40. }
  41. }
  42. }
  43. </script>
  44. <style scoped>
  45. @keyframes gradientBG{0% {opacity:1; } 50% { opacity:0.8;} 80% { opacity:1;}}
  46. .graceProgressButton{position:relative; border-radius:0rpx; text-align:center; width:100%;}
  47. .ganimate{animation:gradientBG 1.5s linear infinite;}
  48. </style>