BambooBookScene1.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <script setup>
  2. import { ref } from 'vue'
  3. import useSizeAdapt from "@/useFunctions/useSizeAdapt"
  4. const {
  5. windowSizeInCssForRef,
  6. windowSizeWhenDesignForRef,
  7. } = useSizeAdapt()
  8. const lastX = ref(0)
  9. // 开始滑动
  10. const handletouchstart = (event) => {
  11. lastX.value = event.changedTouches[0].pageX
  12. }
  13. // 监听活动
  14. const touchMove = (event) => {
  15. let currentX = event.changedTouches[0].pageX
  16. let tx = currentX - lastX.value
  17. if (tx < 0) {
  18. emit('slide')
  19. }
  20. }
  21. const emit = defineEmits(['slide', 'close'])
  22. </script>
  23. <template>
  24. <div
  25. class="screen-box"
  26. @touchstart="handletouchstart($event)"
  27. @touchmove="touchMove($event)"
  28. >
  29. <div class="screen-box1">
  30. <div class="title-box">
  31. 芥子园画谱
  32. </div>
  33. <div class="zhupu-box">
  34. 竹谱
  35. </div>
  36. <img
  37. class="operation-h"
  38. src="@/assets/images/icon_operation_h_white.png"
  39. alt=""
  40. >
  41. <img
  42. class="disc-img"
  43. src="@/assets/images/zhupu-disc.png"
  44. alt=""
  45. >
  46. <div class="system-btns">
  47. <BtnBack
  48. :color="`green`"
  49. @click="emit('close')"
  50. />
  51. </div>
  52. </div>
  53. </div>
  54. </template>
  55. <style lang='less' scoped>
  56. .screen-box {
  57. width: 100%;
  58. height: 100%;
  59. position: relative;
  60. .screen-box1 {
  61. width: 100%;
  62. height: 100%;
  63. background-image: url(@/assets/images/bg_zhupu.png);
  64. background-size: 100% 100%;
  65. writing-mode: vertical-rl;
  66. /* 垂直排列,从右向左 */
  67. direction: rtl;
  68. .title-box {
  69. color: #ffffff;
  70. font-size: calc(48 /v-bind('windowSizeWhenDesignForRef')* v-bind('windowSizeInCssForRef'));
  71. line-height: calc(56 /v-bind('windowSizeWhenDesignForRef')* v-bind('windowSizeInCssForRef'));
  72. position: absolute;
  73. font-family: 'KingHwa_OldSong';
  74. letter-spacing: .3em;
  75. top: calc(95 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  76. right: calc(50 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  77. }
  78. .zhupu-box {
  79. color: #ffffff;
  80. font-size: calc(24 /v-bind('windowSizeWhenDesignForRef')* v-bind('windowSizeInCssForRef'));
  81. line-height: calc(28 /v-bind('windowSizeWhenDesignForRef')* v-bind('windowSizeInCssForRef'));
  82. position: absolute;
  83. font-family: 'KingHwa_OldSong';
  84. letter-spacing: .3em;
  85. top: 50%;
  86. right: calc(75 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  87. }
  88. >.operation-h {
  89. position: absolute;
  90. right: calc(55 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  91. bottom: 30%;
  92. width: calc(50 / v-bind('windowSizeWhenDesignForRef')* v-bind('windowSizeInCssForRef'));
  93. }
  94. >.disc-img {
  95. margin-right: calc(170 /v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  96. margin-bottom: calc(230 /v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  97. }
  98. >.system-btns {
  99. width: 100%;
  100. padding: 0 calc(20 / v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef));
  101. display: flex;
  102. flex-direction: column;
  103. justify-content: space-between;
  104. position: absolute;
  105. bottom: calc(20 /v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef));
  106. z-index: 2;
  107. }
  108. }
  109. }
  110. </style>