CameraContent-3-2-2.vue 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <template>
  2. <div class="camera-content-1-1">
  3. <button
  4. class="return"
  5. @click="emit('close')"
  6. />
  7. <h1>{{ title }}</h1>
  8. <div class="content-wrap">
  9. <div
  10. class="design-wrap"
  11. >
  12. <div class="design-wrap-left">
  13. <div class="left-title">
  14. 元代时期元曲文学大家及其代表作品
  15. </div>
  16. <div class="left-text text-indent">
  17. <strong><p>(1)关汉卿《窦娥冤》</p></strong>
  18. <p>在大都的剧作家中,关汉卿占有特殊重要的地位。他一生创作的杂剧在六十种以上,但大多已经散失,传世的仅有十余种。他的作品反映底层人民生活的困苦,塑造了众多令人难忘的人物形象。其代表作《窦娥冤》,是对当时社会的血泪控诉,在我国文学史上占有重要地位。</p>
  19. <strong><p>(3)马致远《天净沙·秋思》</p></strong>
  20. <strong><p>(4)白朴《墙头马上》</p></strong>
  21. <strong><p>(5)王实甫《西厢记》</p></strong>
  22. <p>大都剧作家王实甫,也有很高的成就,《西厢记》,天下夺魁,几百年来深受人民的赞赏。</p>
  23. </div>
  24. </div>
  25. <div class="design-wrap-right">
  26. <img
  27. class="detail-img"
  28. :src="require(`@/assets/images/CameraContent-3-2-2-img-${currentSwitchIdx + 1}.png`)"
  29. alt=""
  30. >
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. </template>
  36. <script setup>
  37. import { ref } from "vue"
  38. const {
  39. windowSizeInCssForRef,
  40. windowSizeWhenDesignForRef,
  41. } = useSizeAdapt(1920, 968)
  42. const emit = defineEmits(['close'])
  43. const currentSwitchIdx = ref(0)
  44. const title = '著名元曲作家与作品'
  45. const imgLists = [
  46. '@/assets/images/CameraContent-3-2-2-img-1.png',
  47. ]
  48. const previous = () => {
  49. console.log('上一页', currentSwitchIdx.value)
  50. if (currentSwitchIdx.value > 0 ) {
  51. console.log('上一页2')
  52. currentSwitchIdx.value -= 1
  53. } else {
  54. return
  55. }
  56. }
  57. const next = () => {
  58. console.log('下一页')
  59. if (currentSwitchIdx.value < imgLists.length - 1) {
  60. currentSwitchIdx.value += 1
  61. } else {
  62. return
  63. }
  64. }
  65. </script>
  66. <style lang="less" scoped>
  67. @page-height-design-px: 970;
  68. .camera-content-1-1 {
  69. position: absolute;
  70. left: 0;
  71. top: 0;
  72. width: 100%;
  73. height: 100%;
  74. background: rgba(0, 0, 0, 0.45);
  75. backdrop-filter: blur(60px);
  76. >button.return {
  77. position: absolute;
  78. width: 58px;
  79. height: 58px;
  80. left: 42px;
  81. top: 68px;
  82. background-image: url(@/assets/images/btn-return.png);
  83. background-size: contain;
  84. background-repeat: no-repeat;
  85. background-position: center center;
  86. z-index: 10;
  87. }
  88. >h1 {
  89. position: absolute;
  90. left: 0;
  91. top: calc(93 / @page-height-design-px * 100vh);
  92. width: 100%;
  93. height: calc(120 / @page-height-design-px * 100vh);
  94. background-image: url(@/assets/images/camera-content-3-1-3-title-bg.png);
  95. background-size: auto 100%;
  96. background-repeat: no-repeat;
  97. background-position: center center;
  98. font-size: calc(32 / @page-height-design-px * 100vh);
  99. font-family: "SourceHanSerifCN-SemiBold";
  100. color: #FFEEC0;
  101. line-height: calc(38 / @page-height-design-px * 100vh);
  102. display: flex;
  103. justify-content: center;
  104. align-items: center;
  105. z-index: 1;
  106. }
  107. >.content-wrap {
  108. position: absolute;
  109. left: 50%;
  110. top: 54%;
  111. width: 100%;
  112. // width: calc(1920 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  113. height: calc(723 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  114. transform: translate(-50%, -50%);
  115. >.switch-wrap {
  116. position: absolute;
  117. right: calc(65 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  118. bottom: calc(83 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  119. z-index: 10;
  120. >button {
  121. width: calc(118 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  122. height: calc(118 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  123. background-image: url(@/assets/images/camera-content-1-1-1-swtich-btn-bg.png);
  124. background-size: 60%;
  125. background-repeat: no-repeat;
  126. background-position: center center;
  127. font-size: calc(24 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  128. font-family: Source Han Sans SC, Source Han Sans SC;
  129. font-weight: 400;
  130. color: #FFFFFF;
  131. line-height: calc(28 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  132. letter-spacing: calc(4 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  133. }
  134. >button:last-of-type {
  135. margin-left: calc(60 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  136. }
  137. >button.active {
  138. background-image: url(@/assets/images/camera-content-1-1-1-swtich-btn-bg-active.png);
  139. background-size: 100%;
  140. }
  141. }
  142. >.design-wrap {
  143. position: absolute;
  144. left: 0;
  145. top: 0;
  146. width: 100%;
  147. height: 100%;
  148. background-image: url(@/assets/images/camera-content-3-1-3-design-bg.png);
  149. background-size: 100% 100%;
  150. background-repeat: no-repeat;
  151. background-position: center center;
  152. display: flex;
  153. justify-content: space-evenly;
  154. align-items: center;
  155. >.design-wrap-left {
  156. width: calc(700 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  157. >.left-title {
  158. width: calc(579 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  159. height: calc(62 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  160. color: #6A3906 ;
  161. font-family: "SourceHanSerifCN-SemiBold";
  162. font-size: calc(22 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  163. background: url(@/assets/images/camera-content-3-1-3-tab-1-img.png);
  164. background-size: cover;
  165. line-height: calc(62 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  166. padding-left: calc(60 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  167. }
  168. >.left-text {
  169. margin-top: 15px;
  170. height: calc(300 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  171. overflow: auto;
  172. line-height: 30px;
  173. >strong p {
  174. color: #000000;
  175. font-family: "Source Han Sans SC Bold" !important;
  176. }
  177. p {
  178. font-family: "Source Han Sans SC Normal" !important;
  179. }
  180. }
  181. }
  182. >.design-wrap-right {
  183. width: calc(818 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  184. height: calc(438 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  185. background: rgba(145,129,117,0.25);
  186. border: 1px solid #FFE88B;
  187. padding: 15px 10px;
  188. position: relative;
  189. >.btn-left {
  190. width: 50px;
  191. height: 50px;
  192. position: absolute;
  193. left: -25px;
  194. top: 50%;
  195. transform: translateY(-50%);
  196. z-index: 2;
  197. cursor: pointer;
  198. }
  199. >.btn-right {
  200. width: 50px;
  201. height: 50px;
  202. position: absolute;
  203. right: -25px;
  204. top: 50%;
  205. transform: translateY(-50%);
  206. z-index: 2;
  207. cursor: pointer;
  208. }
  209. >.detail-img {
  210. width: 100%;
  211. }
  212. }
  213. }
  214. }
  215. }
  216. </style>