index.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <template>
  2. <div class="birdview">
  3. <ViewOperation>
  4. <div class="birdcon">
  5. <img class="bd_bg" :src="require(`@/assets/images/proj2022/mobile/mobile_bg.jpg`)" alt="" />
  6. <div class="tag" v-for="(item, i) in themes" :key="i" :class="item.id">
  7. <img @click="onClick(item)" :src="require(`@/assets/images/proj2022/bird_view/${item.id}@2x.png`)" alt="" />
  8. </div>
  9. </div>
  10. </ViewOperation>
  11. <!-- <img v-if="!hideClose" class="close" @click="close" :src="require('@/assets/images/proj2022/pc/cancel.png')" alt="" /> -->
  12. </div>
  13. </template>
  14. <script>
  15. import ViewOperation from "./ViewOperation";
  16. export default {
  17. props: ["hideClose"],
  18. data() {
  19. return {};
  20. },
  21. components: {
  22. ViewOperation,
  23. },
  24. methods: {
  25. close() {
  26. this.$emit("close");
  27. },
  28. onClick(data) {
  29. console.log(data);
  30. this.$router.push({
  31. name: "scene",
  32. params: { type: data.id, isjump: "yes" },
  33. });
  34. setTimeout(() => {
  35. this.close();
  36. }, 300);
  37. },
  38. },
  39. mounted() {},
  40. };
  41. </script>
  42. <style lang="less" scoped>
  43. .birdview {
  44. position: fixed;
  45. left: 0;
  46. top: 0;
  47. width: 100%;
  48. height: 100%;
  49. z-index: 9;
  50. background-color: #7e8d62;
  51. .close {
  52. position: absolute;
  53. right: 20px;
  54. top: 20px;
  55. cursor: pointer;
  56. z-index: 99;
  57. }
  58. .birdcon {
  59. height: 100%;
  60. width: auto;
  61. position: relative;
  62. .bd_bg {
  63. width: auto;
  64. height: 100%;
  65. }
  66. .tag {
  67. position: absolute;
  68. max-width: 10%;
  69. cursor: pointer;
  70. display: inline-block;
  71. &::after {
  72. pointer-events: none;
  73. animation: highlight-move 3s infinite;
  74. background: linear-gradient(90deg, hsla(0, 0%, 100%, 0) 0, hsla(0, 0%, 100%, 0.3) 50%, hsla(0, 0%, 100%, 0));
  75. content: "";
  76. height: 88%;
  77. left: 0%;
  78. position: absolute;
  79. top: 0;
  80. transform: skewX(-45deg);
  81. width: 40%;
  82. }
  83. > img {
  84. width: 100%;
  85. }
  86. }
  87. .one {
  88. top: 49%;
  89. left: 49%;
  90. }
  91. .two {
  92. top: 41%;
  93. left: 55%;
  94. }
  95. .three {
  96. top: 35%;
  97. left: 62%;
  98. }
  99. .four {
  100. top: 18%;
  101. left: 47%;
  102. }
  103. .five {
  104. top: 26%;
  105. left: 37%;
  106. }
  107. .xuting {
  108. top: 54%;
  109. left: 38%;
  110. }
  111. .weiting {
  112. top: 35%;
  113. left: 30%;
  114. }
  115. }
  116. }
  117. @keyframes highlight-move {
  118. 0% {
  119. left: 0%;
  120. }
  121. 100% {
  122. left: 70%;
  123. }
  124. }
  125. </style>