CameraContent-3-1-2.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. <template>
  2. <div class="camera-content-1-1">
  3. <button
  4. class="return"
  5. @click="emit('close')"
  6. />
  7. <div class="content-wrap">
  8. <h1>上流社会的雅集盛会</h1>
  9. <div class="tabbar">
  10. <span
  11. :class="{
  12. active: activeTabIdx === 1
  13. }"
  14. @click="activeTabIdx = 1"
  15. >
  16. 盛会介绍
  17. </span>
  18. <div class="splitter" />
  19. <span
  20. :class="{
  21. active: activeTabIdx === 2
  22. }"
  23. @click="activeTabIdx = 2"
  24. >
  25. 活动内容
  26. </span>
  27. </div>
  28. <div
  29. v-if="activeTabIdx === 1"
  30. class="tab-content tab-1-content"
  31. >
  32. <h3>元代上流社会的雅集盛会</h3>
  33. <p class="text-indent">
  34. 雅集是古代文人的派对形式之一,举办聚会的理由是各式各样的,规模亦可大可小。在雅集的活动里,主人与宾客除了享用精致美味的佳肴,也会有吟诗、鼓琴、对弈、观画、品茗等助兴活动,更不用说宴会上即席挥毫、题咏等具有纪念性质的副产品产出。宴集上文人之间相互激荡与较劲,因此雅集亦可说是文化的孕育摇篮。 元文宗奎章阁中汇集的历代收藏和公主祥哥剌吉天庆寺的清赏雅集,更是元大都文化与艺术发展的见证。经由此雅集盛会的举办,宋元时期的书画名作将得到更多展示鉴赏的机会,艺术作品所汇聚的美感能量跨越时空与身份,进而延续或创造新的艺术文化成果。
  35. </p>
  36. <!-- <img
  37. class=""
  38. src="@/assets/images/camera-content-3-1-2-tab-1-img.png"
  39. alt=""
  40. draggable="false"
  41. > -->
  42. <!-- <div
  43. v-if="tab1ContentPageNumber === 2"
  44. class="table"
  45. >
  46. <h3>大都城主要设计者和建设者</h3>
  47. <img
  48. class="table-img"
  49. src="@/assets/images/camera-content-1-1-2-tab-1-table.png"
  50. alt=""
  51. draggable="false"
  52. >
  53. </div> -->
  54. <button
  55. v-if="tab1ContentPageNumber === 1"
  56. class="change-page next-page"
  57. @click="tab1ContentPageNumber = 2"
  58. />
  59. <button
  60. v-if="tab1ContentPageNumber === 2"
  61. class="change-page previous-page"
  62. @click="tab1ContentPageNumber = 1"
  63. />
  64. </div>
  65. <div
  66. v-if="activeTabIdx === 2"
  67. class="tab-content tab-2-content"
  68. >
  69. <h3>
  70. 雅集盛会活动内容
  71. </h3>
  72. <div class="content-box">
  73. <div class="left-list">
  74. <div class="left-list-item">
  75. <div class="item-title">
  76. (1)名家收藏
  77. </div>
  78. <div class="item-span">
  79. 欣赏文人雅士收藏的宋元时期书画作品。
  80. </div>
  81. </div>
  82. <div class="left-list-item">
  83. <div class="item-title">
  84. (2)士人题跋
  85. </div>
  86. <div class="item-span">
  87. 对喜爱的书画作品题跋留念。
  88. </div>
  89. </div>
  90. <div class="left-list-item">
  91. <div class="item-title">
  92. (3)多元艺术
  93. </div>
  94. <div class="item-span">
  95. 呈现蒙元时代文化艺术成果。
  96. </div>
  97. </div>
  98. <div class="left-list-item">
  99. <div class="item-title">
  100. (4)交流互鉴
  101. </div>
  102. <div class="item-span">
  103. 现场挥毫泼墨,品鉴、交流。
  104. </div>
  105. </div>
  106. </div>
  107. <img src="@/assets/images/camera-content-3-1-2-tab-2-img.png">
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. </template>
  113. <script setup>
  114. import { ref, computed, watch, onMounted } from "vue"
  115. import { useRoute, useRouter } from "vue-router"
  116. import { useStore } from "vuex"
  117. const {
  118. windowSizeInCssForRef,
  119. windowSizeWhenDesignForRef,
  120. } = useSizeAdapt(1920, 970)
  121. const route = useRoute()
  122. const router = useRouter()
  123. const store = useStore()
  124. const emit = defineEmits(['close'])
  125. const activeTabIdx = ref(1)
  126. // const tab1ContentPageNumber = ref(1)
  127. </script>
  128. <style lang="less" scoped>
  129. .camera-content-1-1{
  130. position: absolute;
  131. left: 0;
  132. top: 0;
  133. width: 100%;
  134. height: 100%;
  135. background: rgba(0,0,0,0.45);
  136. backdrop-filter: blur(60px);
  137. >button.return{
  138. position: absolute;
  139. width: 58px;
  140. height: 58px;
  141. left: 42px;
  142. top: 68px;
  143. background-image: url(@/assets/images/btn-return.png);
  144. background-size: contain;
  145. background-repeat: no-repeat;
  146. background-position: center center;
  147. }
  148. >.content-wrap{
  149. position: absolute;
  150. left: 50%;
  151. top: 54%;
  152. width: calc(1585 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  153. height: calc(819 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  154. transform: translate(-50%, -50%);
  155. background-image: url(@/assets/images/camera-content-3-1-1-bg.png);
  156. background-size: cover;
  157. background-repeat: no-repeat;
  158. background-position: center center;
  159. >h1{
  160. position: absolute;
  161. left: calc(163 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  162. top: calc(190 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  163. font-size: calc(40 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  164. font-family: "SourceHanSerifCN-SemiBold";
  165. color: #FBF7DC;
  166. line-height: calc(47 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  167. writing-mode: vertical-lr;
  168. letter-spacing: 0.23em;
  169. }
  170. >.tabbar{
  171. position: absolute;
  172. display: flex;
  173. flex-direction: column;
  174. align-items: center;
  175. left: calc(373 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  176. top: calc(42 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  177. >span{
  178. width: calc(46 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  179. height: calc(168 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  180. writing-mode: vertical-lr;
  181. display: flex;
  182. justify-content: center;
  183. align-items: center;
  184. background: #AC997F;
  185. font-size: 19px;
  186. color: #FFF3C3;
  187. letter-spacing: 1px;
  188. font-family: "SourceHanSerifCN-SemiBold";
  189. box-shadow: 3px 4px 9px 0px rgba(0,0,0,0.25);
  190. cursor: pointer;
  191. }
  192. >span.active{
  193. color: #6A3906;
  194. background: linear-gradient(322deg, #C69D49 0%, #F8E6A9 68%);
  195. }
  196. >.splitter{
  197. position: absolute;
  198. left: 50%;
  199. top: 50%;
  200. transform: translate(-50%, -50%);
  201. width: calc(34 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  202. height: 1px;
  203. background-color: #FFF3C3;
  204. }
  205. }
  206. >.tab-content{
  207. position: absolute;
  208. left: calc(450 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  209. top: calc(42 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  210. width: calc(950 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  211. height: calc(750 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  212. display: flex;
  213. flex-direction: column;
  214. justify-content: flex-start;
  215. align-items: center;
  216. margin-top: 5%;
  217. >h3{
  218. width: calc(892 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  219. height: calc(64 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  220. display: flex;
  221. justify-content: center;
  222. align-items: center;
  223. background-image: url(@/assets/images/camera-content-1-1-2-tab-1-table-title.png);
  224. background-size: cover;
  225. background-repeat: no-repeat;
  226. background-position: center center;
  227. font-size: calc(28 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  228. font-family: "SourceHanSerifCN-SemiBold";
  229. color: #6A3906;
  230. line-height: calc(33 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  231. letter-spacing: calc(5 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  232. margin-bottom: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  233. }
  234. }
  235. >.tab-1-content{
  236. >img {
  237. width: calc(809 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  238. }
  239. >p{
  240. width: calc(809 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  241. max-height: 80%;
  242. overflow: auto;
  243. font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  244. font-family: Source Han Sans SC, Source Han Sans SC;
  245. font-weight: 300;
  246. color: #000000;
  247. line-height: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  248. // letter-spacing: calc(4 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  249. padding-right: 0.5em;
  250. }
  251. >div.table{
  252. position: absolute;
  253. left: 0;
  254. top: 0;
  255. width: 100%;
  256. height: 100%;
  257. display: flex;
  258. flex-direction: column;
  259. justify-content: center;
  260. align-items: center;
  261. >h3{
  262. width: calc(528 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  263. height: calc(64 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  264. display: flex;
  265. justify-content: center;
  266. align-items: center;
  267. background-image: url(@/assets/images/camera-content-1-1-2-tab-1-table-title.png);
  268. background-size: cover;
  269. background-repeat: no-repeat;
  270. background-position: center center;
  271. font-size: calc(28 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  272. font-family: Source Han Serif CN;
  273. font-weight: 600;
  274. color: #6A3906;
  275. line-height: calc(33 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  276. letter-spacing: calc(5 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  277. margin-bottom: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  278. }
  279. >img.table-img{
  280. width: calc(931 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  281. height: calc(528 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  282. }
  283. }
  284. >button.change-page{
  285. position: absolute;
  286. width: calc(60 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  287. height: calc(60 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  288. right: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  289. bottom: calc(50 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  290. background-size: cover;
  291. background-repeat: no-repeat;
  292. background-position: center center;
  293. }
  294. >button.next-page{
  295. background-image: url(@/assets/images/camera-content-1-1-2-tab-1-next-page.png);
  296. }
  297. >button.previous-page{
  298. background-image: url(@/assets/images/camera-content-1-1-2-tab-1-previous-page.png);
  299. }
  300. }
  301. >.tab-2-content{
  302. // padding-top: calc(50 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  303. // padding-bottom: calc(50 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  304. display: flex;
  305. flex-direction: column;
  306. justify-content: flex-start;
  307. align-items: center;
  308. >.content-box {
  309. width: 100%;
  310. display: flex;
  311. align-items: center;
  312. justify-content: center;
  313. >.left-list {
  314. width: calc(440 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  315. >.left-list-item{
  316. .item-title,
  317. .item-span{
  318. font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  319. font-family: "Source Han Sans SC light";
  320. line-height: 34px;
  321. }
  322. &:not(:last-child) {
  323. margin-bottom: 10px;
  324. }
  325. }
  326. >img {
  327. width: 50%;
  328. }
  329. }
  330. >img {
  331. height: calc(464 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  332. }
  333. }
  334. }
  335. }
  336. }
  337. </style>