scrollTop.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <template name="scrollTop">
  2. <!-- 商品详情价格判断 -->
  3. <view>
  4. <view class="scrollTop" :style="{bottom:bottom+'rpx'}">
  5. <view class="supplierLogo" v-if="isShowSupplier" @click="$api.navigateTo('/pages/login/supplier_login')"></view>
  6. <view class="icon msg">
  7. <!-- #ifdef MP-WEIXIN -->
  8. <button class="contact-btn" open-type="contact" @bindcontact="handleContact">
  9. <text class="iconfont icon-zixunrexian"></text>
  10. </button>
  11. <!-- #endif -->
  12. </view>
  13. <view class="icon top" @click="onPageScrollTop" :class="isScrollTop ? 'show' : 'none'">
  14. <text class="iconfont icon-zhiding"></text>
  15. </view>
  16. </view>
  17. </view>
  18. </template>
  19. <script>
  20. export default{
  21. name:'scrollTop',
  22. props:{
  23. bottom:{
  24. type:Number,
  25. default:100
  26. },
  27. isScrollTop:{
  28. type:Boolean,
  29. default:false
  30. },
  31. isShowSupplier: { // 是否展示供应商服务图标
  32. type: Boolean,
  33. default: false
  34. }
  35. },
  36. data() {
  37. return{
  38. isPhone:false,
  39. telPhone:'0755-22907771',
  40. mobilePhone:'15338851365'
  41. }
  42. },
  43. created() {
  44. },
  45. methods:{
  46. onPageScrollTop(){
  47. uni.pageScrollTo({
  48. scrollTop: 0,
  49. duration: 600
  50. })
  51. },
  52. handleContact(e){
  53. console.log(e.detail.path)
  54. console.log(e.detail.query)
  55. },
  56. },
  57. }
  58. </script>
  59. <style lang="scss">
  60. .scrollTop{
  61. width: 80rpx;
  62. height: 200rpx;
  63. position: fixed;
  64. right: 20rpx;
  65. z-index: 99;
  66. .supplierLogo {
  67. width: 80rpx;
  68. height: 80rpx;
  69. background: url(https://static.caimei365.com/app/img/icon/supplier_logo.png) no-repeat;
  70. background-size: contain;
  71. transform: scale(1.5);
  72. }
  73. .icon{
  74. width: 80rpx;
  75. height: 80rpx;
  76. border-radius: 50%;
  77. float: left;
  78. margin: 10rpx 0;
  79. line-height: 80rpx;
  80. text-align: center;
  81. .contact-btn{
  82. width: 80rpx;
  83. height: 80rpx;
  84. background-color: rgba(0,0,0,0);
  85. line-height: 80rpx;
  86. .iconfont{
  87. font-size: $font-size-44;
  88. color: #FFFFFF;
  89. }
  90. }
  91. &.msg{
  92. background-image: linear-gradient(0deg, #f28e31 0%, #FF5B00 100%);
  93. }
  94. &.top{
  95. background-color: rgba(0,0,0,0.4);
  96. &.show{
  97. opacity: 1;
  98. }
  99. &.none{
  100. opacity: 0;
  101. }
  102. }
  103. .iconfont{
  104. font-size: $font-size-44;
  105. color: #FFFFFF;
  106. }
  107. }
  108. }
  109. </style>