backTop.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <template>
  2. <div class="backTop">
  3. <div class="luojigouLogo">
  4. <img :src="luojigouLogo" alt="">
  5. </div>
  6. <div class="hotline">
  7. <div class="hotLineCode">
  8. <img :src="hotLineCode" alt="" />
  9. </div>
  10. <div class="hotLineImg"></div>
  11. </div>
  12. <div class="public">
  13. <div class="publicCode">
  14. <img :src="publicCode" alt="" srcset="">
  15. </div>
  16. <div class="publicImg"></div>
  17. </div>
  18. <a class="backTopBtn" v-show="backTopIsShow" @click="handleBackTop" href="javascript:;">
  19. <img :src="backTopBtn" />
  20. </a>
  21. </div>
  22. </template>
  23. <script>
  24. export default {
  25. name: 'backTop',
  26. props: {
  27. backTopIsShow: {
  28. type: Boolean,
  29. default: false
  30. }
  31. },
  32. data() {
  33. return {
  34. luojigouLogo: "https://luojigou-app-commit-pic.luojigou.vip/FvmYmQjjoZftM_fiRYGM0lsC9vfw?imageView2/0/q/50|imageslim",
  35. hotLineCode: 'https://luojigou-app-commit-pic.luojigou.vip/FtIexWC2MZD5jk8YFf6OG11MQUGC?imageView2/0/q/50|imageslim',
  36. publicCode: 'https://luojigou-app-commit-pic.luojigou.vip/FsMJj5IIlzzeDqoOyq0VSUfJ1Cy0?imageView2/0/q/50|imageslim',
  37. backTopBtn: 'https://luojigou-app-commit-pic.luojigou.vip/Fnz0K17ERo2g1foAvu9KAnAOmw7O?imageView2/0/q/50|imageslim'
  38. }
  39. },
  40. methods: {
  41. handleBackTop() {
  42. this.$emit('handleBackTop')
  43. }
  44. }
  45. }
  46. </script>
  47. <style lang="scss" scoped>
  48. .backTop {
  49. position: fixed;
  50. right: 60px;
  51. top: 580px;
  52. z-index: 99999;
  53. width: 70px;
  54. // height: 140px;
  55. background: #FFFFFF;
  56. border-radius: 4px;
  57. border: 1px solid rgba(230, 230, 230, 0.8);
  58. .luojigouLogo {
  59. position: absolute;
  60. top: -55px;
  61. left: 4px;
  62. img {
  63. width: 60px;
  64. object-fit: cover;
  65. }
  66. }
  67. .hotline,
  68. .public {
  69. display: flex;
  70. justify-content: center;
  71. align-items: center;
  72. position: relative;
  73. width: 70px;
  74. height: 70px;
  75. .hotLineImg,
  76. .publicImg {
  77. width: 42px;
  78. height: 42px;
  79. background-image: url("~assets/images/backTop/hotline.png");
  80. background-size: cover;
  81. background-repeat: no-repeat;
  82. }
  83. .publicImg {
  84. width: 32px;
  85. height: 44px;
  86. background-image: url("~assets/images/backTop/public.png");
  87. }
  88. }
  89. .hotLineCode,
  90. .publicCode {
  91. display: none;
  92. position: absolute;
  93. top: -40px;
  94. left: -195px;
  95. padding: 10px;
  96. border-radius: 10px;
  97. border: 1px solid rgba(230, 230, 230, 0.8);
  98. background-color: #fff;
  99. }
  100. .hotline:hover {
  101. .hotLineImg {
  102. background-image: url("~assets/images/backTop/hotlined.png");
  103. }
  104. .hotLineCode {
  105. display: block;
  106. }
  107. }
  108. .public:hover {
  109. .publicImg {
  110. background-image: url("~assets/images/backTop/publiced.png");
  111. }
  112. .publicCode {
  113. display: block;
  114. }
  115. }
  116. .backTopBtn {
  117. display: flex;
  118. justify-content: center;
  119. align-items: center;
  120. width: 70px;
  121. height: 46px;
  122. img {
  123. width: 22px;
  124. }
  125. }
  126. }
  127. </style>