CameraContent-2-1-2.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  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. <p class="left-text text-indent">
  17. 元大都用水的水系,重要的有两条。一条是由金水河、太液池构成的宫苑用水系统。金水河从和义门(今西直门)南入城,后分两支:一支汇入北海,另一支进入中海,再经元宫城的前面流出,经东华门附近汇入通惠河。另一条是由高梁河、海子(积水潭)、通惠河构成的漕运系统。高梁河由和义门北入城,汇为积水潭,经海子桥(即后门桥)往东往南汇入通惠河。这条漕运水系将大运河的终点通州与积水潭连接起来。
  18. </p>
  19. </div>
  20. <div class="design-wrap-right">
  21. <img
  22. class="detail-img"
  23. :src="require(`@/assets/images/CameraContent-2-1-2-img-${currentSwitchIdx + 1}.png`)"
  24. alt=""
  25. style="cursor: pointer;"
  26. @click="handleFull"
  27. >
  28. <div class="img-title">
  29. 元大都水系图
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. </template>
  36. <script setup>
  37. import { ref, getCurrentInstance } from "vue"
  38. const {
  39. windowSizeInCssForRef,
  40. windowSizeWhenDesignForRef,
  41. } = useSizeAdapt(1920, 968)
  42. const emit = defineEmits(['close'])
  43. const currentSwitchIdx = ref(0)
  44. const instance = getCurrentInstance()
  45. const handleFull = () => {
  46. instance.appContext.config.globalProperties.$viewerApi({
  47. options: {},
  48. images: [
  49. require(`@/assets/images/CameraContent-2-1-2-img-${currentSwitchIdx.value + 1}.png`)
  50. ]
  51. })
  52. }
  53. </script>
  54. <style lang="less" scoped>
  55. @page-height-design-px: 970;
  56. .camera-content-1-1 {
  57. position: absolute;
  58. left: 0;
  59. top: 0;
  60. width: 100%;
  61. height: 100%;
  62. background: rgba(0, 0, 0, 0.45);
  63. backdrop-filter: blur(60px);
  64. >button.return {
  65. position: absolute;
  66. width: 58px;
  67. height: 58px;
  68. left: 42px;
  69. top: 68px;
  70. background-image: url(@/assets/images/btn-return.png);
  71. background-size: contain;
  72. background-repeat: no-repeat;
  73. background-position: center center;
  74. z-index: 10;
  75. }
  76. >h1 {
  77. position: absolute;
  78. left: 0;
  79. top: calc(93 / @page-height-design-px * 100vh);
  80. width: 100%;
  81. height: calc(120 / @page-height-design-px * 100vh);
  82. background-image: url(@/assets/images/camera-content-2-1-1-title-bg.png);
  83. background-size: auto 100%;
  84. background-repeat: no-repeat;
  85. background-position: center center;
  86. font-size: calc(32 / @page-height-design-px * 100vh);
  87. font-family: "SourceHanSansSC-Normal";
  88. font-weight: 800;
  89. color: #FFEEC0;
  90. line-height: calc(38 / @page-height-design-px * 100vh);
  91. display: flex;
  92. justify-content: center;
  93. align-items: center;
  94. z-index: 1;
  95. }
  96. >.content-wrap {
  97. position: absolute;
  98. left: 50%;
  99. top: 54%;
  100. width: 100%;
  101. // width: calc(1920 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  102. height: calc(723 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  103. transform: translate(-50%, -50%);
  104. >.switch-wrap {
  105. position: absolute;
  106. right: calc(65 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  107. bottom: calc(83 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  108. z-index: 10;
  109. >button {
  110. width: calc(118 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  111. height: calc(118 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  112. background-image: url(@/assets/images/camera-content-1-1-1-swtich-btn-bg.png);
  113. background-size: 60%;
  114. background-repeat: no-repeat;
  115. background-position: center center;
  116. font-size: calc(24 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  117. font-family: Source Han Sans SC, Source Han Sans SC;
  118. font-weight: 400;
  119. color: #FFFFFF;
  120. line-height: calc(28 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  121. letter-spacing: calc(4 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  122. }
  123. >button:last-of-type {
  124. margin-left: calc(60 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  125. }
  126. >button.active {
  127. background-image: url(@/assets/images/camera-content-1-1-1-swtich-btn-bg-active.png);
  128. background-size: 100%;
  129. }
  130. }
  131. >.design-wrap {
  132. position: absolute;
  133. left: 0;
  134. top: 0;
  135. width: 100%;
  136. height: 100%;
  137. background-image: url(@/assets/images/camera-content-2-1-1-design-bg.png);
  138. background-size: 100% 100%;
  139. background-repeat: no-repeat;
  140. background-position: center center;
  141. display: flex;
  142. justify-content: space-evenly;
  143. align-items: center;
  144. >.design-wrap-left {
  145. width: calc(720 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  146. >.left-title {
  147. width: calc(579 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  148. height: calc(62 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  149. color: #6A3906 ;
  150. font-family: "SourceHanSerifCN-SemiBold";
  151. font-size: 22px;
  152. background: url(@/assets/images/camera-content-3-1-3-tab-1-img.png);
  153. background-size: cover;
  154. line-height: calc(62 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  155. padding-left: calc(70 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  156. }
  157. >.left-text {
  158. // font-family: 'SourceHanSansSC-Normal';
  159. margin-top: 25px;
  160. padding-right: 20px;
  161. height: calc(300 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  162. overflow: auto;
  163. // font-family: 'SourceHanSansSC-Normal';
  164. // letter-spacing: 3px;
  165. font-size: 18px;
  166. line-height: 30px;
  167. font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  168. >strong {
  169. color: #000000;
  170. font-family: 'SourceHanSansSC-Bold';
  171. margin-bottom: 10px;
  172. }
  173. }
  174. }
  175. >.design-wrap-right {
  176. width: calc(818 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  177. position: relative;
  178. display: flex;
  179. flex-direction: column;
  180. justify-content: center;
  181. align-items: center;
  182. >.detail-img {
  183. width: 100%;
  184. }
  185. >.img-title{
  186. margin-top: 0.5em;
  187. }
  188. }
  189. }
  190. }
  191. }
  192. @media screen and (max-height: 740px) {
  193. .camera-content-1-1 > .content-wrap {
  194. top: 50%;
  195. .design-wrap {
  196. .design-wrap-left {
  197. width: calc(820 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  198. .left-title {
  199. font-size: 26px !important;
  200. }
  201. .left-text {
  202. height: calc(400 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  203. }
  204. }
  205. .design-wrap-right {
  206. width: calc(920 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  207. }
  208. }
  209. }
  210. }
  211. </style>