HomeView.vue 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517
  1. <script setup>
  2. import { ref, computed, inject, nextTick } from "vue"
  3. import { useRouter } from "vue-router"
  4. import { useStore } from "vuex"
  5. import HotspotDetail1 from "@/views/HotspotDetail1.vue"
  6. import HotspotDetail3 from "@/views/HotspotDetail3.vue"
  7. import { api as viewerApi } from "v-viewer"
  8. import Startup from "@/views/StartupView.vue"
  9. import { useWindowSize } from '@vueuse/core'
  10. const store = useStore()
  11. const curPageIndex = ref(0)
  12. const homepagePaintingDesc = configText.homepagePaintingDesc
  13. const homepageAuthorDesc = configText.homepageAuthorDesc
  14. const detailDescStem = configText.homepagePaintingDetailDescStem
  15. const detailDescLeaf = configText.homepagePaintingDetailDescLeaf
  16. const router = useRouter()
  17. const { windowSizeInCssForRef, windowSizeWhenDesignForRef } = useSizeAdapt()
  18. const { width: windowWidth, height: windowHeight } = useWindowSize()
  19. const isShowPaintingDesc = ref(false)
  20. const isShowAuthorDesc = ref(false)
  21. const isShowHotspotDetail1 = ref(false)
  22. const isShowHotspotDetail3 = ref(false)
  23. const curCenterTag = computed(() => {
  24. return curPageIndex.value == 3
  25. ? "三竿修竹"
  26. : curPageIndex.value == 4
  27. ? "竹叶"
  28. : ""
  29. })
  30. const curFixedDesc = computed(() => {
  31. return curPageIndex.value == 3
  32. ? detailDescStem
  33. : curPageIndex.value == 4
  34. ? detailDescLeaf
  35. : ""
  36. })
  37. const lastY = ref(0)
  38. // 开始滑动
  39. const handletouchstart = (event) => {
  40. lastY.value = event.changedTouches[0].pageY
  41. }
  42. const isShowOperationTip = ref(true)
  43. // 监听活动
  44. const touchEnd = (event) => {
  45. let currentY = event.changedTouches[0].pageY
  46. let ty = currentY - lastY.value
  47. if (
  48. ty > 0 &&
  49. curPageIndex.value == 1 &&
  50. !isShowHotspotDetail1.value &&
  51. !isShowHotspotDetail3.value &&
  52. !isShowPaintingDesc.value &&
  53. !isShowAuthorDesc.value
  54. ) {
  55. isShowOperationTip.value = true
  56. curPageIndex.value = 0
  57. } else if (ty < 0 && curPageIndex.value == 0) {
  58. isShowOperationTip.value = false
  59. curPageIndex.value = 1
  60. }
  61. }
  62. const $env = inject("$env")
  63. function showBigPainting() {
  64. viewerApi({
  65. images: [`${$env.BASE_URL}configMultiMedia/paintings-big/修篁树石图.jpg`],
  66. options: {
  67. className: "viewer-backdrop-home",
  68. },
  69. })
  70. const bodyDom = document.querySelector("body")
  71. const viewerBtn = document.querySelector(".viewer-close")
  72. const viewerCanvas = document.querySelector(".viewer-canvas")
  73. const bigTipDomImg = document.createElement("img")
  74. bigTipDomImg.src = `${$env.BASE_URL}configMultiMedia/icon/icon-home-big.png`
  75. const bigTipDom = document.createElement("div")
  76. const bigTipDomText = document.createElement("div")
  77. bigTipDomText.innerText = "放大/缩小"
  78. bigTipDom.appendChild(bigTipDomText)
  79. bigTipDom.appendChild(bigTipDomImg)
  80. bigTipDom.className = "big-tip"
  81. if (bodyDom) {
  82. bodyDom.appendChild(bigTipDom)
  83. }
  84. if (viewerBtn) {
  85. viewerBtn.classList.add("viewer-button-home")
  86. viewerBtn.addEventListener("click", () => {
  87. if (bodyDom.querySelector(".big-tip")) {
  88. bodyDom.removeChild(bigTipDom)
  89. }
  90. })
  91. }
  92. if (viewerCanvas) {
  93. viewerCanvas.addEventListener("touchstart", () => {
  94. if (bodyDom.querySelector(".big-tip")) {
  95. bodyDom.removeChild(bigTipDom)
  96. }
  97. })
  98. }
  99. }
  100. const isShowVideoFadeToNextPage = ref(false)
  101. const videoFadeToNextPageEl = ref(null)
  102. const isShowSkip = ref(false)
  103. function onClickGoNextPage() {
  104. isShowVideoFadeToNextPage.value = true
  105. nextTick(() => {
  106. videoFadeToNextPageEl.value.play()
  107. })
  108. setTimeout(() => {
  109. isShowSkip.value = true
  110. }, 2000)
  111. }
  112. const backFu = () => {
  113. if (
  114. curPageIndex.value === 4 ||
  115. curPageIndex.value === 3 ||
  116. curPageIndex.value === 5
  117. ) {
  118. curPageIndex.value = 2
  119. } else {
  120. curPageIndex.value--
  121. }
  122. }
  123. </script>
  124. <template>
  125. <div
  126. style="
  127. opacity: 0;
  128. pointer-events: none;
  129. font-family: KingHwa_OldSong;
  130. position: absolute;
  131. top: 0;
  132. left: 0;
  133. z-index: -1;
  134. "
  135. >
  136. 123
  137. </div>
  138. <div
  139. class="home"
  140. @touchstart="handletouchstart($event)"
  141. @touchend="touchEnd($event)"
  142. >
  143. <!-- 了解更多视频 -->
  144. <Transition name="fade-in">
  145. <video
  146. v-if="isShowVideoFadeToNextPage"
  147. ref="videoFadeToNextPageEl"
  148. class="fade-to-next-page"
  149. :src="require(`@/assets/videos/fade-from-home-to-more-content${windowWidth >= 768 ? '-768' :''}.mp4`)"
  150. playsinline
  151. webkit-playsinline="true"
  152. x5-video-player-type="h5"
  153. muted
  154. @ended="
  155. router.replace({
  156. name: 'MoreContentChange',
  157. })
  158. "
  159. />
  160. </Transition>
  161. <Transition name="fade-in">
  162. <BtnSkip
  163. v-if="isShowSkip"
  164. @click="
  165. router.replace({
  166. name: 'MoreContentChange',
  167. })
  168. "
  169. />
  170. </Transition>
  171. <!-- 背景 -->
  172. <div
  173. class="bg-mask"
  174. :style="{ background: curPageIndex == 2 ? `rgba(85,116,83,0.8)` : `` }"
  175. />
  176. <!-- 开场动画 -->
  177. <Transition name="fade-out">
  178. <Startup
  179. v-if="!store.state.haveShownStartup"
  180. class="startup"
  181. />
  182. </Transition>
  183. <!-- 首页标题 -->
  184. <div
  185. class="title-wrap"
  186. :style="{
  187. opacity: curPageIndex == 0 ? 1 : 0,
  188. }"
  189. >
  190. <img
  191. class="title"
  192. src="@/assets/images/home-title.png"
  193. alt=""
  194. draggable="false"
  195. >
  196. <div class="sub-text">
  197. 绢本 墨笔<br>
  198. 元 李衎<br>
  199. </div>
  200. </div>
  201. <!-- 画作 -->
  202. <div
  203. class="painting-wrap"
  204. :class="{
  205. 'painting-wrap1': curPageIndex == 0,
  206. 'painting-wrap2': curPageIndex == 1,
  207. 'painting-wrap3': curPageIndex == 2 || curPageIndex == 3,
  208. 'painting-wrap4': curPageIndex == 4,
  209. 'painting-wrap5': curPageIndex == 5,
  210. }"
  211. @click="
  212. () => {
  213. curPageIndex == 1 ? (curPageIndex = 2) : '';
  214. }
  215. "
  216. >
  217. <img
  218. class="painting-border"
  219. src="@/assets/images/painting-border-new.png"
  220. alt=""
  221. draggable="false"
  222. >
  223. <img
  224. class="painting-stem"
  225. src="@/assets/images/home-painting2.jpg"
  226. alt=""
  227. draggable="false"
  228. >
  229. <img
  230. :style="{ opacity: curPageIndex == 3 ? 1 : 0, zIndex: 3 }"
  231. class="painting-stem"
  232. src="@/assets/images/home2-1.png"
  233. alt=""
  234. >
  235. <img
  236. class="painting-stem"
  237. src="@/assets/images/img_zhuye-min2.png"
  238. alt=""
  239. :style="{
  240. opacity: curPageIndex == 4 ? 1 : 0,
  241. zIndex: 2,
  242. }"
  243. draggable="false"
  244. >
  245. <img
  246. class="painting-stem"
  247. src="@/assets/images/img_stone_all-min.png"
  248. :style="{
  249. opacity: curPageIndex == 5 ? 1 : 0,
  250. zIndex: 2,
  251. }"
  252. alt=""
  253. draggable="false"
  254. >
  255. <!-- 绿色遮罩层 -->
  256. <div
  257. class="green-box"
  258. :style="{ opacity: curPageIndex == 3 ? 1 : 0 }"
  259. />
  260. </div>
  261. <!-- 热点层1 -->
  262. <div class="hotspot-wrap">
  263. <HotspotForHomepage
  264. v-show="curPageIndex == 1"
  265. class="hotspot-1"
  266. @click="isShowHotspotDetail1 = true"
  267. />
  268. <HotspotForHomepage
  269. v-show="curPageIndex == 1"
  270. class="hotspot-3"
  271. @click="isShowHotspotDetail3 = true"
  272. />
  273. </div>
  274. <!-- 热点层2 -->
  275. <div class="hotspot-wrap2">
  276. <HotspotForHomepage
  277. v-show="curPageIndex == 2"
  278. class="hotspot-leaf"
  279. @click="curPageIndex = 4"
  280. />
  281. <HotspotForHomepage
  282. v-show="curPageIndex == 2"
  283. class="hotspot-stem"
  284. @click="curPageIndex = 3"
  285. />
  286. <HotspotForHomepage
  287. v-show="curPageIndex == 2"
  288. class="hotspot-stone"
  289. @click="curPageIndex = 5"
  290. />
  291. <img
  292. :style="{
  293. opacity: curPageIndex == 2 ? 1 : 0,
  294. display: curPageIndex == 2 ? 'block' : 'none',
  295. }"
  296. class="icon_scale"
  297. src="@/assets/images/icon_scale.png"
  298. alt=""
  299. @click="showBigPainting"
  300. >
  301. </div>
  302. <!-- 热点详情页 -->
  303. <Transition name="fade-in-out">
  304. <HotspotDetail1
  305. v-if="isShowHotspotDetail1"
  306. class="hotspot-detail"
  307. @close="isShowHotspotDetail1 = false"
  308. />
  309. </Transition>
  310. <Transition name="fade-in-out">
  311. <HotspotDetail3
  312. v-if="isShowHotspotDetail3"
  313. class="hotspot-detail"
  314. @close="isShowHotspotDetail3 = false"
  315. />
  316. </Transition>
  317. <!-- 底部中心文字 -->
  318. <div
  319. class="center-text"
  320. :style="{ opacity: curPageIndex == 3 || curPageIndex == 4 ? 1 : 0 }"
  321. :class="{ 'center-text4': curPageIndex == 4 }"
  322. >
  323. {{ curCenterTag }}
  324. </div>
  325. <!-- 底部文字介绍 -->
  326. <div
  327. class="fixed-desc"
  328. :class="{ 'fixed-desc4': curPageIndex == 4 }"
  329. :style="{
  330. opacity: curPageIndex == 3 || curPageIndex == 4 ? 1 : 0,
  331. textIndent: '2em',
  332. }"
  333. v-html="curFixedDesc"
  334. />
  335. <!-- 左滑提示 -->
  336. <OperationTip
  337. v-show="curPageIndex == 0"
  338. class="operation-tip"
  339. text="向上划动"
  340. :is-show="isShowOperationTip"
  341. />
  342. <!-- 页面2点击提示 -->
  343. <img
  344. class="click-tip"
  345. :class="{ 'click-tip-ac': curPageIndex == 1 }"
  346. src="@/assets/images/icon-home-click.png"
  347. alt=""
  348. @click="
  349. () => {
  350. curPageIndex == 1 ? (curPageIndex = 2) : '';
  351. }
  352. "
  353. >
  354. <!-- 作品、作者简介 -->
  355. <div
  356. ref="longDesc"
  357. class="long-desc"
  358. :class="{ 'long-desc-ac': curPageIndex == 1 }"
  359. @touchstart="handletouchstart($event)"
  360. @touchend="touchEnd($event)"
  361. >
  362. <div
  363. class="page2-box"
  364. @click="isShowPaintingDesc = true"
  365. >
  366. <img
  367. src="@/assets/images/icon_home_detail-min.png"
  368. alt=""
  369. >
  370. <div>作品简介</div>
  371. </div>
  372. <div
  373. class="page2-box"
  374. @click="isShowAuthorDesc = true"
  375. >
  376. <img
  377. src="@/assets/images/icon_home_author-min.png"
  378. alt=""
  379. >
  380. <div>作者简介</div>
  381. </div>
  382. </div>
  383. <!-- 了解更多 -->
  384. <div
  385. :style="{
  386. opacity: curPageIndex == 2 ? 1 : 0,
  387. zIndex: curPageIndex == 2 ? 5 : 0,
  388. }"
  389. class="learn-more"
  390. @click="onClickGoNextPage"
  391. >
  392. 知识探索
  393. <div class="click-tip">
  394. <img
  395. src="@/assets/images/icon-home-click.png"
  396. alt=""
  397. >
  398. <div>点击查看</div>
  399. </div>
  400. </div>
  401. <!-- 返回按钮 -->
  402. <BtnBack
  403. :style="{
  404. opacity:
  405. curPageIndex == 2 ||
  406. curPageIndex == 3 ||
  407. curPageIndex == 4 ||
  408. curPageIndex == 5
  409. ? 1
  410. : 0,
  411. zIndex: curPageIndex == 1 || curPageIndex == 0 ? -1 : 1,
  412. }"
  413. class="back-btn-main"
  414. @click="backFu()"
  415. />
  416. <!-- <img
  417. :style="{
  418. opacity:
  419. curPageIndex == 2 ||
  420. curPageIndex == 3 ||
  421. curPageIndex == 4 ||
  422. curPageIndex == 5
  423. ? 1
  424. : 0,
  425. zIndex: curPageIndex == 1 || curPageIndex == 0 ? -1 : 1,
  426. }"
  427. class="back-btn-main"
  428. src="@/assets/images/icon_back_white.png"
  429. alt=""
  430. @click="backFu()"
  431. > -->
  432. <!-- 石头文字层 -->
  433. <div
  434. class="stone-text-box"
  435. :style="{
  436. opacity: curPageIndex == 5 ? 1 : 0,
  437. }"
  438. >
  439. <img
  440. class="stone-text"
  441. src="@/assets/images/stone-text-min.png"
  442. >
  443. </div>
  444. <!-- 作品简介 -->
  445. <div
  446. v-show="isShowPaintingDesc"
  447. class="painting-box"
  448. >
  449. <!-- 顶部画作 -->
  450. <img
  451. class="painting-img"
  452. src="@/assets/images/img_painting-box.png"
  453. alt=""
  454. >
  455. <div class="text-box">
  456. <p
  457. v-for="(item, index) in homepagePaintingDesc"
  458. :key="index"
  459. >
  460. {{ item }}
  461. </p>
  462. </div>
  463. <!-- 遮罩 -->
  464. <div class="shandow-box" />
  465. <!-- <div class="bottom-box" /> -->
  466. <BtnBack
  467. class="back-btn"
  468. @click="isShowPaintingDesc = false"
  469. />
  470. <!-- <img
  471. class="back-btn"
  472. src="@/assets/images/icon_back_white.png"
  473. alt=""
  474. @click="isShowPaintingDesc = false"
  475. > -->
  476. <!-- <BtnBack
  477. class="system-btns"
  478. @click="isShowPaintingDesc = false"
  479. /> -->
  480. </div>
  481. <!-- 作者简介 -->
  482. <div
  483. v-show="isShowAuthorDesc"
  484. class="author-box"
  485. >
  486. <div class="author-content">
  487. <div class="author-img">
  488. <img src="@/assets/images/img_author-min.png">
  489. </div>
  490. <div class="author-name">
  491. <img src="@/assets/images/text_likan-min.png">
  492. </div>
  493. <div class="line" />
  494. <div class="text-box">
  495. <p
  496. v-for="(item, index) in homepageAuthorDesc"
  497. :key="index"
  498. >
  499. {{ item }}
  500. </p>
  501. </div>
  502. </div>
  503. <!-- 遮罩 -->
  504. <div class="shandow-box" />
  505. <BtnBack
  506. class="back-btn"
  507. @click="isShowAuthorDesc = false"
  508. />
  509. <!-- <img
  510. style="position: absolute; bottom: 30px; left: 20px; width: 25px"
  511. src="@/assets/images/icon_back_white.png"
  512. alt=""
  513. @click="isShowAuthorDesc = false"
  514. > -->
  515. <!-- <BtnBack
  516. class="system-btns"
  517. @click="isShowAuthorDesc = false"
  518. /> -->
  519. </div>
  520. </div>
  521. </template>
  522. <style lang="less" scoped>
  523. body {
  524. -webkit-transform: translate3d(0, 0, 0);
  525. transform: translate3d(0, 0, 0);
  526. }
  527. // img,div {
  528. // -webkit-backface-visibility: hidden;
  529. // backface-visibility: hidden;
  530. // transition: width 1.5s, transform 1.5s, top 1.5s, opacity 1.5s;
  531. // }
  532. img,
  533. div {
  534. -webkit-backface-visibility: hidden;
  535. backface-visibility: hidden;
  536. // transition: opacity 1.5s, top 1.5s, transform 1.5s;
  537. transition: opacity 1.5s, top 1.5s, width 1.5s, height 1.5s;
  538. }
  539. ::-webkit-scrollbar {
  540. display: none;
  541. }
  542. .home {
  543. width: 100%;
  544. height: 100%;
  545. background-image: url(@/assets/images/home-painting-line-small.jpg);
  546. background-size: cover;
  547. background-repeat: no-repeat;
  548. background-position: center center;
  549. position: relative;
  550. > video.fade-to-next-page {
  551. position: absolute;
  552. left: 0;
  553. top: 0;
  554. width: 100%;
  555. height: 100%;
  556. object-fit: cover;
  557. z-index: 20;
  558. }
  559. > .bg-mask {
  560. position: absolute;
  561. left: 0;
  562. top: 0;
  563. width: 100%;
  564. height: 100%;
  565. background: rgba(60, 89, 71, 0.65);
  566. backdrop-filter: blur(
  567. calc(
  568. 22 / v-bind("windowSizeWhenDesignForRef") *
  569. v-bind("windowSizeInCssForRef")
  570. )
  571. );
  572. }
  573. > .startup {
  574. z-index: 20;
  575. }
  576. > .title-wrap {
  577. position: absolute;
  578. left: 50%;
  579. top: calc(
  580. 36 / v-bind("windowSizeWhenDesignForRef") *
  581. v-bind("windowSizeInCssForRef")
  582. );
  583. transform: translate(-50%);
  584. width: calc(
  585. 43 / v-bind("windowSizeWhenDesignForRef") *
  586. v-bind("windowSizeInCssForRef")
  587. );
  588. height: calc(
  589. 180 / v-bind("windowSizeWhenDesignForRef") *
  590. v-bind("windowSizeInCssForRef")
  591. );
  592. z-index: 5;
  593. > img.title {
  594. position: absolute;
  595. left: 0;
  596. top: 0;
  597. width: 100%;
  598. height: 100%;
  599. }
  600. > .sub-text {
  601. position: absolute;
  602. left: 110%;
  603. top: 46%;
  604. transform: translateY(-50%);
  605. writing-mode: vertical-lr;
  606. font-family: KaiTi;
  607. font-weight: 400;
  608. font-size: calc(
  609. 18 / v-bind("windowSizeWhenDesignForRef") *
  610. v-bind("windowSizeInCssForRef")
  611. );
  612. color: #ffffff;
  613. line-height: calc(
  614. 21 / v-bind("windowSizeWhenDesignForRef") *
  615. v-bind("windowSizeInCssForRef")
  616. );
  617. white-space: pre;
  618. letter-spacing: 0.2em;
  619. text-align: center;
  620. }
  621. }
  622. > .hotspot-wrap {
  623. position: absolute;
  624. left: 50%;
  625. top: calc(
  626. 62 / v-bind("windowSizeWhenDesignForRef") *
  627. v-bind("windowSizeInCssForRef")
  628. ) !important;
  629. transform: translate(-46%, 0);
  630. width: calc(
  631. 266 / v-bind("windowSizeWhenDesignForRef") *
  632. v-bind("windowSizeInCssForRef")
  633. );
  634. height: calc(
  635. 517 / v-bind("windowSizeWhenDesignForRef") *
  636. v-bind("windowSizeInCssForRef")
  637. );
  638. z-index: 7;
  639. pointer-events: none;
  640. will-change: transform;
  641. backface-visibility: hidden;
  642. z-index: 10;
  643. & > div {
  644. z-index: 100;
  645. transition: all 1.5s ease-in-out;
  646. }
  647. > .hotspot-1 {
  648. position: absolute;
  649. top: calc(
  650. 54 / v-bind("windowSizeWhenDesignForRef") *
  651. v-bind("windowSizeInCssForRef")
  652. );
  653. right: calc(
  654. 0 / v-bind("windowSizeWhenDesignForRef") *
  655. v-bind("windowSizeInCssForRef")
  656. );
  657. pointer-events: initial;
  658. }
  659. > .hotspot-2 {
  660. position: absolute;
  661. left: calc(
  662. 60 / v-bind("windowSizeWhenDesignForRef") *
  663. v-bind("windowSizeInCssForRef")
  664. );
  665. top: calc(
  666. 222 / v-bind("windowSizeWhenDesignForRef") *
  667. v-bind("windowSizeInCssForRef")
  668. );
  669. pointer-events: initial;
  670. }
  671. > .hotspot-3 {
  672. position: absolute;
  673. bottom: calc(
  674. -10 / v-bind("windowSizeWhenDesignForRef") * v-bind("windowSizeInCssForRef")
  675. );
  676. right: calc(
  677. -10 / v-bind("windowSizeWhenDesignForRef") * v-bind("windowSizeInCssForRef")
  678. );
  679. pointer-events: initial;
  680. }
  681. }
  682. > .hotspot-wrap2 {
  683. position: absolute;
  684. left: 50%;
  685. top: calc(
  686. 62 / v-bind("windowSizeWhenDesignForRef") *
  687. v-bind("windowSizeInCssForRef")
  688. ) !important;
  689. transform: translate(-50%, 0);
  690. width: calc(
  691. 364 / v-bind("windowSizeWhenDesignForRef") *
  692. v-bind("windowSizeInCssForRef")
  693. );
  694. height: calc(
  695. 542 / v-bind("windowSizeWhenDesignForRef") *
  696. v-bind("windowSizeInCssForRef")
  697. );
  698. z-index: 4;
  699. & > div {
  700. z-index: 100;
  701. transition: all 1.5s ease-in-out;
  702. }
  703. // background: rgba(0, 128, 0, 0.527);
  704. > .hotspot-leaf {
  705. position: absolute;
  706. top: calc(
  707. 259 / v-bind("windowSizeWhenDesignForRef") *
  708. v-bind("windowSizeInCssForRef")
  709. );
  710. left: calc(
  711. 158 / v-bind("windowSizeWhenDesignForRef") *
  712. v-bind("windowSizeInCssForRef")
  713. );
  714. }
  715. > .hotspot-stem {
  716. position: absolute;
  717. top: calc(
  718. 79 / v-bind("windowSizeWhenDesignForRef") *
  719. v-bind("windowSizeInCssForRef")
  720. );
  721. left: calc(
  722. 256 / v-bind("windowSizeWhenDesignForRef") *
  723. v-bind("windowSizeInCssForRef")
  724. );
  725. }
  726. > .hotspot-stone {
  727. position: absolute;
  728. top: calc(
  729. 395 / v-bind("windowSizeWhenDesignForRef") *
  730. v-bind("windowSizeInCssForRef")
  731. );
  732. left: calc(
  733. 94 / v-bind("windowSizeWhenDesignForRef") *
  734. v-bind("windowSizeInCssForRef")
  735. );
  736. }
  737. > .icon_scale {
  738. width: 35px;
  739. height: 35px;
  740. position: absolute;
  741. right: 0;
  742. bottom: 0;
  743. transition: all 1.5s ease-in-out;
  744. @media screen and (min-width: 600px) {
  745. width: 40px;
  746. height: 40px;
  747. right: 5px;
  748. bottom: 5px;
  749. }
  750. }
  751. }
  752. > .hotspot-detail {
  753. z-index: 21;
  754. }
  755. > .painting-wrap {
  756. position: absolute;
  757. left: 50%;
  758. width: calc(
  759. 308 / v-bind("windowSizeWhenDesignForRef") *
  760. v-bind("windowSizeInCssForRef")
  761. );
  762. height: calc(
  763. 523 / v-bind("windowSizeWhenDesignForRef") *
  764. v-bind("windowSizeInCssForRef")
  765. );
  766. // background: green;
  767. transform: translate(-50%, 0);
  768. z-index: 1;
  769. > .painting-border {
  770. width: 100%;
  771. height: 100%;
  772. position: absolute;
  773. }
  774. > .painting-stem {
  775. width: calc(
  776. 245 / v-bind("windowSizeWhenDesignForRef") *
  777. v-bind("windowSizeInCssForRef")
  778. );
  779. height: calc(
  780. 371 / v-bind("windowSizeWhenDesignForRef") *
  781. v-bind("windowSizeInCssForRef")
  782. );
  783. position: absolute;
  784. left: 50%;
  785. transform: translate(-50%, 26%);
  786. }
  787. }
  788. > .painting-wrap1 {
  789. top: 28%;
  790. }
  791. > .painting-wrap2 {
  792. top: 7%;
  793. z-index: 8;
  794. transform: transform 1.5s !important;
  795. }
  796. > .painting-wrap3 {
  797. // transform: translate(-50%, 0%) scale(1.5);
  798. width: 110%;
  799. // height: calc(315 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  800. height: calc(
  801. 760 / v-bind("windowSizeWhenDesignForRef") *
  802. v-bind("windowSizeInCssForRef")
  803. );
  804. top: calc(
  805. -80 / v-bind("windowSizeWhenDesignForRef") * v-bind("windowSizeInCssForRef")
  806. );
  807. @media screen and (min-width: 600px) {
  808. width: 75%;
  809. }
  810. > .painting-stem {
  811. width: calc(
  812. 364 / v-bind("windowSizeWhenDesignForRef") *
  813. v-bind("windowSizeInCssForRef")
  814. );
  815. height: calc(
  816. 542 / v-bind("windowSizeWhenDesignForRef") *
  817. v-bind("windowSizeInCssForRef")
  818. );
  819. }
  820. > .green-box {
  821. width: 200vw;
  822. height: 200vh;
  823. background: rgba(85, 116, 83, 0.8);
  824. position: fixed;
  825. top: 0;
  826. left: 0;
  827. z-index: 2;
  828. overflow: hidden;
  829. transition: opacity 1.5s ease;
  830. @media screen and (min-width: 600px) {
  831. transform: translateX(-20%);
  832. }
  833. }
  834. }
  835. > .painting-wrap4 {
  836. // transform: translate(-57%, -40%) scale(4.2);
  837. width: calc(110% * 4.2);
  838. // height: calc(315 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  839. height: calc(
  840. 760 * 4.2 / v-bind("windowSizeWhenDesignForRef") *
  841. v-bind("windowSizeInCssForRef")
  842. );
  843. transform: translate(-53%, -50%);
  844. transform-origin: 50% 50%;
  845. > .painting-stem {
  846. width: calc(
  847. 364 * 4.2 / v-bind("windowSizeWhenDesignForRef") *
  848. v-bind("windowSizeInCssForRef")
  849. );
  850. height: calc(
  851. 542 * 4.2 / v-bind("windowSizeWhenDesignForRef") *
  852. v-bind("windowSizeInCssForRef")
  853. );
  854. }
  855. }
  856. > .painting-wrap5 {
  857. // transform: translate(-26%, 10%) scale(2.6);
  858. width: calc(110% * 2.2);
  859. // height: calc(315 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  860. height: calc(
  861. 760 * 2.2 / v-bind("windowSizeWhenDesignForRef") *
  862. v-bind("windowSizeInCssForRef")
  863. );
  864. transform: translate(-40%, -39%);
  865. transform-origin: center center;
  866. @media screen and (min-width: 600px) {
  867. transform: translate(-45%, -39%);
  868. }
  869. > .painting-stem {
  870. width: calc(
  871. 364 * 2.2 / v-bind("windowSizeWhenDesignForRef") *
  872. v-bind("windowSizeInCssForRef")
  873. );
  874. height: calc(
  875. 542 * 2.2 / v-bind("windowSizeWhenDesignForRef") *
  876. v-bind("windowSizeInCssForRef")
  877. );
  878. }
  879. }
  880. > .center-text {
  881. position: absolute;
  882. left: 50%;
  883. top: calc(
  884. 650 / v-bind("windowSizeWhenDesignForRef") *
  885. v-bind("windowSizeInCssForRef")
  886. );
  887. transform: translateX(-50%);
  888. width: calc(
  889. 309 / v-bind("windowSizeWhenDesignForRef") *
  890. v-bind("windowSizeInCssForRef")
  891. );
  892. display: flex;
  893. justify-content: center;
  894. align-items: center;
  895. font-family: KaiTi;
  896. color: #ffffff;
  897. font-weight: 400;
  898. font-size: calc(
  899. 30 / v-bind("windowSizeWhenDesignForRef") *
  900. v-bind("windowSizeInCssForRef")
  901. );
  902. line-height: calc(
  903. 42 / v-bind("windowSizeWhenDesignForRef") *
  904. v-bind("windowSizeInCssForRef")
  905. );
  906. text-align: justify;
  907. z-index: 2;
  908. }
  909. > .center-text4 {
  910. top: calc(
  911. 616 / v-bind("windowSizeWhenDesignForRef") *
  912. v-bind("windowSizeInCssForRef")
  913. );
  914. }
  915. > .fixed-desc {
  916. position: absolute;
  917. left: 50%;
  918. transform: translateX(-50%);
  919. width: calc(
  920. 309 / v-bind("windowSizeWhenDesignForRef") *
  921. v-bind("windowSizeInCssForRef")
  922. );
  923. height: 20%;
  924. display: flex;
  925. justify-content: center;
  926. align-items: center;
  927. font-family: KaiTi;
  928. color: #ffffff;
  929. font-weight: 400;
  930. top: calc(
  931. 670 / v-bind("windowSizeWhenDesignForRef") *
  932. v-bind("windowSizeInCssForRef")
  933. );
  934. font-size: calc(
  935. 18 / v-bind("windowSizeWhenDesignForRef") *
  936. v-bind("windowSizeInCssForRef")
  937. );
  938. line-height: calc(
  939. 25 / v-bind("windowSizeWhenDesignForRef") *
  940. v-bind("windowSizeInCssForRef")
  941. );
  942. text-align: justify;
  943. display: block;
  944. z-index: 2;
  945. margin-top: calc(
  946. 30 / v-bind("windowSizeWhenDesignForRef") *
  947. v-bind("windowSizeInCssForRef")
  948. );
  949. @media screen and (min-width: 600px) {
  950. width:80%;
  951. }
  952. }
  953. > .fixed-desc4 {
  954. top: calc(
  955. 627 / v-bind("windowSizeWhenDesignForRef") *
  956. v-bind("windowSizeInCssForRef")
  957. );
  958. }
  959. > .operation-tip {
  960. position: absolute;
  961. left: 50%;
  962. transform: translateX(-50%);
  963. bottom: calc(
  964. 25 / v-bind("windowSizeWhenDesignForRef") *
  965. v-bind("windowSizeInCssForRef")
  966. );
  967. }
  968. > .click-tip {
  969. position: absolute;
  970. width: 45px;
  971. height: 45px;
  972. top: calc(
  973. 340 / v-bind("windowSizeWhenDesignForRef") *
  974. v-bind("windowSizeInCssForRef")
  975. );
  976. left: calc(
  977. 280 / v-bind("windowSizeWhenDesignForRef") *
  978. v-bind("windowSizeInCssForRef")
  979. );
  980. z-index: 10;
  981. opacity: 0;
  982. @media screen and (min-width: 600px) {
  983. width: 65px;
  984. height: 65px;
  985. }
  986. }
  987. > .click-tip-ac {
  988. opacity: 1;
  989. }
  990. > .big-tip {
  991. position: fixed;
  992. bottom: calc(
  993. 30 / v-bind("windowSizeWhenDesignForRef") *
  994. v-bind("windowSizeInCssForRef")
  995. );
  996. left: 50%;
  997. transform: translateX(-50%);
  998. }
  999. > .big-tip-ac {
  1000. opacity: 1;
  1001. z-index: 2015;
  1002. }
  1003. > .stone-text-box {
  1004. position: fixed;
  1005. top: 0;
  1006. right: 0;
  1007. z-index: 3;
  1008. width: calc(
  1009. 224 / v-bind("windowSizeWhenDesignForRef") *
  1010. v-bind("windowSizeInCssForRef")
  1011. );
  1012. background: linear-gradient(78deg, rgba(0, 0, 0, 0) 38%, #00000087 75%);
  1013. height: 100%;
  1014. > .stone-text {
  1015. position: fixed;
  1016. top: calc(
  1017. 50 / v-bind("windowSizeWhenDesignForRef") *
  1018. v-bind("windowSizeInCssForRef")
  1019. );
  1020. right: calc(
  1021. 20 / v-bind("windowSizeWhenDesignForRef") *
  1022. v-bind("windowSizeInCssForRef")
  1023. );
  1024. z-index: 3;
  1025. width: calc(
  1026. 120 / v-bind("windowSizeWhenDesignForRef") *
  1027. v-bind("windowSizeInCssForRef")
  1028. );
  1029. }
  1030. }
  1031. > .learn-more {
  1032. width: calc(
  1033. 200 / v-bind("windowSizeWhenDesignForRef") *
  1034. v-bind("windowSizeInCssForRef")
  1035. );
  1036. height: calc(
  1037. 50 / v-bind("windowSizeWhenDesignForRef") *
  1038. v-bind("windowSizeInCssForRef")
  1039. );
  1040. display: flex;
  1041. justify-content: center;
  1042. align-items: center;
  1043. color: white;
  1044. font-family: "KaiTi";
  1045. position: absolute;
  1046. top: calc(
  1047. 745 / v-bind("windowSizeWhenDesignForRef") *
  1048. v-bind("windowSizeInCssForRef")
  1049. );
  1050. font-size: calc(
  1051. 20 / v-bind("windowSizeWhenDesignForRef") *
  1052. v-bind("windowSizeInCssForRef")
  1053. );
  1054. line-height: calc(
  1055. 29 / v-bind("windowSizeWhenDesignForRef") *
  1056. v-bind("windowSizeInCssForRef")
  1057. );
  1058. left: 50%;
  1059. transform: translateX(-50%);
  1060. background: url(@/assets/images/learn-more.png);
  1061. background-size: 100% 100%;
  1062. > .click-tip {
  1063. display: flex;
  1064. flex-direction: column;
  1065. position: absolute;
  1066. right: -10%;
  1067. bottom: -80%;
  1068. > img {
  1069. width: calc(
  1070. 40 / v-bind("windowSizeWhenDesignForRef") *
  1071. v-bind("windowSizeInCssForRef")
  1072. );
  1073. }
  1074. > div {
  1075. font-size: calc(
  1076. 20 / v-bind("windowSizeWhenDesignForRef") *
  1077. v-bind("windowSizeInCssForRef")
  1078. );
  1079. font-family: "KaiTi";
  1080. color: #ffffff;
  1081. }
  1082. }
  1083. }
  1084. > .back-btn-main {
  1085. position: absolute;
  1086. z-index: 3;
  1087. // left: calc(
  1088. // 17 / v-bind("windowSizeWhenDesignForRef") *
  1089. // v-bind("windowSizeInCssForRef")
  1090. // );
  1091. // bottom: calc(
  1092. // 25 / v-bind("windowSizeWhenDesignForRef") *
  1093. // v-bind("windowSizeInCssForRef")
  1094. // );
  1095. }
  1096. > .long-desc {
  1097. position: absolute;
  1098. left: 50%;
  1099. bottom: calc(
  1100. 0 / v-bind("windowSizeWhenDesignForRef") * v-bind("windowSizeInCssForRef")
  1101. );
  1102. width: calc(
  1103. 309 / v-bind("windowSizeWhenDesignForRef") *
  1104. v-bind("windowSizeInCssForRef")
  1105. );
  1106. transform: translate(-50%, 100%);
  1107. color: white;
  1108. overflow: hidden;
  1109. font-family: KaiTi;
  1110. color: #ffffff;
  1111. animation: none;
  1112. display: flex;
  1113. justify-content: space-between;
  1114. z-index: 2;
  1115. opacity: 0;
  1116. > .page2-box {
  1117. display: flex;
  1118. flex-direction: column;
  1119. justify-content: center;
  1120. align-items: center;
  1121. > img {
  1122. width: 45%;
  1123. margin-bottom: 10px;
  1124. @media screen and (min-width: 600px) {
  1125. width: 55%;
  1126. }
  1127. }
  1128. > div {
  1129. font-size: calc(
  1130. 20 / v-bind("windowSizeWhenDesignForRef") *
  1131. v-bind("windowSizeInCssForRef")
  1132. );
  1133. font-family: KaiTi;
  1134. }
  1135. }
  1136. }
  1137. > .long-desc-ac {
  1138. bottom: calc(
  1139. 100 / v-bind("windowSizeWhenDesignForRef") *
  1140. v-bind("windowSizeInCssForRef")
  1141. );
  1142. transform: translate(-50%, 0);
  1143. z-index: 5;
  1144. opacity: 1;
  1145. @media screen and (min-width: 600px) {
  1146. bottom: calc(
  1147. 100 / v-bind("windowSizeWhenDesignForRef") *
  1148. v-bind("windowSizeInCssForRef")
  1149. );
  1150. }
  1151. }
  1152. > .painting-box {
  1153. width: 100%;
  1154. height: 100%;
  1155. background: rgba(73, 91, 71, 0.7);
  1156. backdrop-filter: blur(22.5px);
  1157. position: fixed;
  1158. top: 0;
  1159. left: 0;
  1160. display: flex;
  1161. flex-direction: column;
  1162. // align-content: center;
  1163. align-items: center;
  1164. // justify-content: center;
  1165. z-index: 15;
  1166. padding-top: 15%;
  1167. padding-left: 10%;
  1168. padding-right: 10%;
  1169. @media screen and (min-width: 600px) {
  1170. padding-top: 10%;
  1171. padding-left: 15%;
  1172. padding-right: 15%;
  1173. }
  1174. > .shandow-box {
  1175. width: 100%;
  1176. height: 140px;
  1177. left: 0;
  1178. background: linear-gradient(
  1179. rgba(0, 0, 0, 0),
  1180. rgba(0, 0, 0, 0.3),
  1181. rgba(0, 0, 0, 0.8)
  1182. );
  1183. position: absolute;
  1184. bottom: 0;
  1185. pointer-events: none;
  1186. // z-index: 1;
  1187. }
  1188. > .back-btn {
  1189. // left: calc(
  1190. // 17 / v-bind("windowSizeWhenDesignForRef") *
  1191. // v-bind("windowSizeInCssForRef")
  1192. // );
  1193. // bottom: calc(
  1194. // 25 / v-bind("windowSizeWhenDesignForRef") *
  1195. // v-bind("windowSizeInCssForRef")
  1196. // );
  1197. position: absolute;
  1198. }
  1199. > .painting-img {
  1200. width: 70%;
  1201. margin-bottom: 20px;
  1202. @media screen and (min-width: 600px) {
  1203. width: 60%;
  1204. margin-bottom: 40px;
  1205. }
  1206. }
  1207. > .text-box {
  1208. width: 100%;
  1209. overflow: auto;
  1210. padding: 0 0px 40px 0px;
  1211. @media screen and (min-width: 600px) {
  1212. max-height: 30%;
  1213. }
  1214. &::-webkit-scrollbar {
  1215. display: none;
  1216. }
  1217. > p {
  1218. text-indent: 2em;
  1219. margin-bottom: 10px;
  1220. color: #ffffff;
  1221. font-size: calc(
  1222. 24 / v-bind("windowSizeWhenDesignForRef") *
  1223. v-bind("windowSizeInCssForRef")
  1224. );
  1225. line-height: calc(
  1226. 30 / v-bind("windowSizeWhenDesignForRef") *
  1227. v-bind("windowSizeInCssForRef")
  1228. );
  1229. font-family: KaiTi;
  1230. @media screen and (min-width: 600px) {
  1231. font-size: calc(
  1232. 20 / v-bind("windowSizeWhenDesignForRef") *
  1233. v-bind("windowSizeInCssForRef")
  1234. );
  1235. line-height: calc(
  1236. 30 / v-bind("windowSizeWhenDesignForRef") *
  1237. v-bind("windowSizeInCssForRef")
  1238. );
  1239. }
  1240. }
  1241. }
  1242. > .bottom-box {
  1243. width: 100%;
  1244. min-height: 10vh;
  1245. background: linear-gradient(
  1246. 0deg,
  1247. rgba(73, 91, 71, 0.7) 0%,
  1248. rgba(115, 115, 115, 0) 100%
  1249. );
  1250. position: absolute;
  1251. bottom: 0;
  1252. left: 0;
  1253. }
  1254. > .system-btns {
  1255. width: 30px;
  1256. height: 30px;
  1257. padding: 0
  1258. calc(
  1259. 20 / v-bind(windowSizeWhenDesignForRef) *
  1260. v-bind(windowSizeInCssForRef)
  1261. );
  1262. position: fixed;
  1263. left: calc(
  1264. 30 / v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef)
  1265. );
  1266. bottom: calc(
  1267. 50 / v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef)
  1268. );
  1269. z-index: 2;
  1270. }
  1271. }
  1272. > .author-box {
  1273. width: 100%;
  1274. height: 100%;
  1275. background: rgba(73, 91, 71, 0.7);
  1276. backdrop-filter: blur(22.5px);
  1277. position: fixed;
  1278. top: 0;
  1279. left: 0;
  1280. padding: 0 10%;
  1281. z-index: 15;
  1282. padding-top: 15%;
  1283. padding-left: 10%;
  1284. padding-right: 10%;
  1285. @media screen and (min-width: 600px) {
  1286. padding-top: 10%;
  1287. padding-left: 15%;
  1288. padding-right: 15%;
  1289. }
  1290. > .shandow-box {
  1291. width: 100%;
  1292. height: 140px;
  1293. left: 0;
  1294. background: linear-gradient(
  1295. rgba(0, 0, 0, 0),
  1296. rgba(0, 0, 0, 0.3),
  1297. rgba(0, 0, 0, 0.8)
  1298. );
  1299. // background: linear-gradient( 180deg, #d9d9d93f 0%, rgba(115,115,115,0) 100%);
  1300. position: absolute;
  1301. bottom: 0;
  1302. pointer-events: none;
  1303. // z-index: 1;
  1304. }
  1305. > .author-content {
  1306. width: 100%;
  1307. height: 100%;
  1308. overflow: auto;
  1309. &::-webkit-scrollbar {
  1310. display: none;
  1311. }
  1312. display: flex;
  1313. flex-direction: column;
  1314. align-items: center;
  1315. > .author-img {
  1316. width: 100%;
  1317. margin-bottom: 5px;
  1318. display: flex;
  1319. justify-content: end;
  1320. > img {
  1321. width: 30%;
  1322. }
  1323. }
  1324. > .author-name {
  1325. // width: 50%;
  1326. width: 100%;
  1327. margin-bottom: 5px;
  1328. display: flex;
  1329. justify-content: start;
  1330. > img {
  1331. width: 50%;
  1332. }
  1333. }
  1334. > .line {
  1335. width: 100%;
  1336. min-height: 1px;
  1337. background: #e1edd9;
  1338. margin: 15px auto;
  1339. content: "";
  1340. }
  1341. > .text-box {
  1342. width: 100%;
  1343. padding-bottom: 40px;
  1344. > p {
  1345. text-indent: 2em;
  1346. margin-bottom: 10px;
  1347. color: #ffffff;
  1348. font-size: calc(
  1349. 24 / v-bind("windowSizeWhenDesignForRef") *
  1350. v-bind("windowSizeInCssForRef")
  1351. );
  1352. line-height: calc(
  1353. 30 / v-bind("windowSizeWhenDesignForRef") *
  1354. v-bind("windowSizeInCssForRef")
  1355. );
  1356. font-family: KaiTi;
  1357. @media screen and (min-width: 600px) {
  1358. font-size: calc(
  1359. 20 / v-bind("windowSizeWhenDesignForRef") *
  1360. v-bind("windowSizeInCssForRef")
  1361. );
  1362. line-height: calc(
  1363. 26 / v-bind("windowSizeWhenDesignForRef") *
  1364. v-bind("windowSizeInCssForRef")
  1365. );
  1366. }
  1367. }
  1368. }
  1369. }
  1370. > .bottom-box {
  1371. width: 100%;
  1372. min-height: 20vh;
  1373. background: linear-gradient(
  1374. 0deg,
  1375. rgba(73, 91, 71, 0.7) 0%,
  1376. rgba(115, 115, 115, 0) 100%
  1377. );
  1378. position: absolute;
  1379. bottom: 0;
  1380. left: 0;
  1381. }
  1382. > .back-btn {
  1383. // left: calc(
  1384. // 17 / v-bind("windowSizeWhenDesignForRef") *
  1385. // v-bind("windowSizeInCssForRef")
  1386. // );
  1387. // bottom: calc(
  1388. // 25 / v-bind("windowSizeWhenDesignForRef") *
  1389. // v-bind("windowSizeInCssForRef")
  1390. // );
  1391. position: absolute;
  1392. }
  1393. > .system-btns {
  1394. // width: 100%;
  1395. padding: 0
  1396. calc(
  1397. 20 / v-bind(windowSizeWhenDesignForRef) *
  1398. v-bind(windowSizeInCssForRef)
  1399. );
  1400. position: fixed;
  1401. left: calc(
  1402. 30 / v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef)
  1403. );
  1404. bottom: calc(
  1405. 35 / v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef)
  1406. );
  1407. z-index: 34;
  1408. }
  1409. }
  1410. }
  1411. </style>