MoreContent.vue 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558
  1. <template>
  2. <div
  3. v-if="isReady"
  4. :class="`more-content`"
  5. >
  6. <div
  7. ref="scrollTarget"
  8. v-touch:swipe.left="onSwipeLeft"
  9. v-touch:swipe.right="onswipeRight"
  10. class="scroll-target"
  11. >
  12. <img
  13. class="bg"
  14. :style="{
  15. left: bgLeft + 'px',
  16. }"
  17. src="@/assets/images/fade-chapter-wood/bg-more-content.jpg"
  18. alt=""
  19. draggable="false"
  20. >
  21. <div
  22. class="layer-4"
  23. :style="{
  24. left: layer4Left + 'px',
  25. }"
  26. >
  27. <img
  28. class="bamboo-4_01"
  29. src="@/assets/images/fade-chapter-wood/4_01.webp"
  30. alt=""
  31. draggable="false"
  32. >
  33. <img
  34. class="bamboo-4_02"
  35. src="@/assets/images/fade-chapter-wood/4_02.webp"
  36. alt=""
  37. draggable="false"
  38. >
  39. <!-- <img
  40. class="bamboo-4_03"
  41. src="@/assets/images/fade-chapter-wood/4_03.webp"
  42. alt=""
  43. draggable="false"
  44. > -->
  45. <!-- <img
  46. class="bamboo-4_04"
  47. src="@/assets/images/fade-chapter-wood/4_04.webp"
  48. alt=""
  49. draggable="false"
  50. > -->
  51. <img
  52. class="bamboo-4_05"
  53. src="@/assets/images/fade-chapter-wood/4_05.webp"
  54. alt=""
  55. draggable="false"
  56. >
  57. <img
  58. class="bamboo-4_06"
  59. src="@/assets/images/fade-chapter-wood/4_06.webp"
  60. alt=""
  61. draggable="false"
  62. >
  63. <img
  64. class="bamboo-4_07"
  65. src="@/assets/images/fade-chapter-wood/4_07.webp"
  66. alt=""
  67. draggable="false"
  68. >
  69. <img
  70. class="bamboo-4_08"
  71. src="@/assets/images/fade-chapter-wood/4_08.webp"
  72. alt=""
  73. draggable="false"
  74. >
  75. <img
  76. class="bamboo-4_09"
  77. src="@/assets/images/fade-chapter-wood/4_09.webp"
  78. alt=""
  79. draggable="false"
  80. >
  81. <img
  82. class="bamboo-4_10"
  83. src="@/assets/images/fade-chapter-wood/4_10.webp"
  84. alt=""
  85. draggable="false"
  86. >
  87. <img
  88. class="bamboo-4_11"
  89. src="@/assets/images/fade-chapter-wood/4_11.webp"
  90. alt=""
  91. draggable="false"
  92. >
  93. <img
  94. class="bamboo-4_12"
  95. src="@/assets/images/fade-chapter-wood/4_12.webp"
  96. alt=""
  97. draggable="false"
  98. >
  99. </div>
  100. <div
  101. class="layer-3"
  102. :style="{
  103. left: layer3Left + 'px',
  104. }"
  105. >
  106. <img
  107. class="bamboo-3_01"
  108. src="@/assets/images/fade-chapter-wood/3_01.webp"
  109. alt=""
  110. draggable="false"
  111. >
  112. <img
  113. class="bamboo-3_02"
  114. src="@/assets/images/fade-chapter-wood/3_02.webp"
  115. alt=""
  116. draggable="false"
  117. >
  118. <img
  119. class="bamboo-3_03"
  120. src="@/assets/images/fade-chapter-wood/3_03.webp"
  121. alt=""
  122. draggable="false"
  123. >
  124. <img
  125. class="bamboo-3_04"
  126. src="@/assets/images/fade-chapter-wood/3_04.webp"
  127. alt=""
  128. draggable="false"
  129. >
  130. </div>
  131. <div
  132. class="layer-2"
  133. :style="{
  134. left: layer2Left + 'px',
  135. }"
  136. >
  137. <img
  138. class="bamboo-2_01"
  139. src="@/assets/images/fade-chapter-wood/2_01.webp"
  140. alt=""
  141. draggable="false"
  142. >
  143. <img
  144. class="bamboo-2_03"
  145. src="@/assets/images/fade-chapter-wood/2_03.webp"
  146. alt=""
  147. draggable="false"
  148. >
  149. <img
  150. class="bamboo-2_02"
  151. src="@/assets/images/fade-chapter-wood/2_02.webp"
  152. alt=""
  153. draggable="false"
  154. >
  155. <!-- <img
  156. class="bamboo-2_03"
  157. src="@/assets/images/fade-chapter-wood/2_03.png"
  158. alt=""
  159. draggable="false"
  160. > -->
  161. <img
  162. class="bamboo-2_04"
  163. src="@/assets/images/fade-chapter-wood/2_04.webp"
  164. alt=""
  165. draggable="false"
  166. >
  167. <img
  168. class="bamboo-2_04-1"
  169. src="@/assets/images/fade-chapter-wood/2_04-1.webp"
  170. alt=""
  171. draggable="false"
  172. >
  173. <img
  174. class="bamboo-2_05"
  175. src="@/assets/images/fade-chapter-wood/2_05.webp"
  176. alt=""
  177. draggable="false"
  178. >
  179. </div>
  180. <div
  181. class="layer-1"
  182. :style="{
  183. left: layer1Left + 'px',
  184. }"
  185. >
  186. <img
  187. class="bamboo-1_01"
  188. src="@/assets/images/fade-chapter-wood/1_01.webp"
  189. alt=""
  190. draggable="false"
  191. >
  192. <HotspotComp
  193. class="hotspot"
  194. @click="
  195. router.replace({
  196. name: 'BambooHot',
  197. })
  198. "
  199. />
  200. <div class="shuang-gou-she-se-group">
  201. <div
  202. class="watch-detail animation-show-long-hide"
  203. @click="onClickShuangGouEntry"
  204. >
  205. 查看详情
  206. </div>
  207. <div class="group-title">
  208. 双钩设色
  209. <img
  210. class="deco"
  211. src="@/assets/images/more-content-deco.png"
  212. alt=""
  213. draggable="false"
  214. >
  215. </div>
  216. </div>
  217. <img
  218. class="bamboo-1_02"
  219. src="@/assets/images/fade-chapter-wood/1_02.webp"
  220. alt=""
  221. draggable="false"
  222. >
  223. <div class="mo-zhu-group">
  224. <div class="button-group">
  225. <div
  226. class="poem animation-show-long-hide"
  227. @click="onClickEntryAtMoZhu('PoemList')"
  228. >
  229. 人文
  230. </div>
  231. <div
  232. class="animation-show-long-hide"
  233. @click="onClickEntryAtMoZhu('PaintingList')"
  234. >
  235. 画作
  236. </div>
  237. <div
  238. class="animation-show-long-hide"
  239. @click="onClickEntryAtMoZhu('BambooBook')"
  240. >
  241. 竹谱
  242. </div>
  243. </div>
  244. <div class="group-title">
  245. 墨竹
  246. <img
  247. class="deco"
  248. src="@/assets/images/more-content-deco.png"
  249. alt=""
  250. draggable="false"
  251. >
  252. </div>
  253. </div>
  254. <img
  255. class="bamboo-1_03"
  256. src="@/assets/images/fade-chapter-wood/1_03.webp"
  257. alt=""
  258. draggable="false"
  259. >
  260. <img
  261. class="bamboo-1_04"
  262. src="@/assets/images/fade-chapter-wood/1_04.webp"
  263. alt=""
  264. draggable="false"
  265. >
  266. <!-- 第三页文字 -->
  267. <div class="shuang-gou-she-se-group shuang-gou-she-se-group3">
  268. <div
  269. class="watch-detail animation-show-long-hide"
  270. @click="
  271. () => {
  272. isShowGamePage = true;
  273. }
  274. "
  275. >
  276. 开始游戏
  277. </div>
  278. <div class="group-title">
  279. 创作体验
  280. <img
  281. class="deco"
  282. src="@/assets/images/more-content-deco.png"
  283. alt=""
  284. draggable="false"
  285. >
  286. </div>
  287. </div>
  288. <!-- 第四页文字 -->
  289. <div
  290. class="wei-ye-group"
  291. >
  292. <img
  293. src="@/assets/images/wu-jing-cang.png"
  294. alt=""
  295. >
  296. <div
  297. class="game-box"
  298. @click="
  299. OpenScene()
  300. "
  301. >
  302. 线上展厅
  303. </div>
  304. <div
  305. class="online-box"
  306. @click="() => {
  307. store.state.haveShownStartup = false
  308. router.replace('/')
  309. }"
  310. >
  311. 重新开始
  312. </div>
  313. </div>
  314. <img
  315. class="bamboo-1_05"
  316. src="@/assets/images/fade-chapter-wood/1_05.webp"
  317. alt=""
  318. draggable="false"
  319. >
  320. </div>
  321. </div>
  322. <ProgressBar
  323. :style="{ opacity: curStep != 0 ? 1: 0}"
  324. class="pagination"
  325. :totle-unit="4"
  326. type="1"
  327. :cur-percentage="curPercentage"
  328. color-ac="#7B916B"
  329. color="#7B916B60"
  330. />
  331. <!-- <PaginationComp
  332. class="pagination"
  333. :total="4"
  334. :idx="currentAnchorIdx"
  335. /> -->
  336. <BtnBack
  337. @click="
  338. router.replace({
  339. name: 'HomeView',
  340. })
  341. "
  342. />
  343. <OperationTip
  344. class="operation-tip"
  345. :direction="'h'"
  346. :text="'下一章'"
  347. :is-show="isShowOperationTip"
  348. :color="'green'"
  349. />
  350. <Transition name="fade-in">
  351. <video
  352. v-if="isShowVideoFadeAtShuangGou"
  353. ref="videoFadeAtShuangGouEl"
  354. class="fade-to-other-page"
  355. src="@/assets/videos/fade-at-shuang-gou.mp4"
  356. playsinline
  357. webkit-playsinline="true"
  358. x5-video-player-type="h5"
  359. muted
  360. @ended="
  361. router.replace({
  362. name: 'ShuanggouDetail',
  363. })
  364. "
  365. />
  366. </Transition>
  367. <Transition name="fade-in">
  368. <div
  369. v-if="isShowVideoFadeAtMoZhu"
  370. :class="`RWbox`"
  371. >
  372. <video
  373. ref="videoFadeAtMoZhuEl"
  374. src="@/assets/videos/fade-at-mo-zhu.mp4"
  375. playsinline
  376. muted
  377. webkit-playsinline="true"
  378. x5-video-player-type="h5"
  379. />
  380. <img
  381. class="RWvideoTxt"
  382. src="@/assets/images/RW/titile_mozhu-min.png"
  383. alt=""
  384. >
  385. </div>
  386. </Transition>
  387. <Transition name="fade-in">
  388. <video
  389. v-if="isShowVideoFadeAtPage3"
  390. ref="videoFadeAtPage3El"
  391. class="fade-to-other-page"
  392. src="@/assets/videos/fade-from-more-content-to-game.mp4"
  393. playsinline
  394. muted
  395. webkit-playsinline="true"
  396. x5-video-player-type="h5"
  397. />
  398. </Transition>
  399. <!-- 游戏页面 -->
  400. <div
  401. v-if="isShowGamePage"
  402. class="game-box"
  403. >
  404. <iframe
  405. id="gameIframe"
  406. :src="`./game/index.html`"
  407. />
  408. <!-- edit弹框 -->
  409. <div
  410. v-if="isShowToastFromGame"
  411. class="edit-box"
  412. >
  413. <!-- <input :v-model="inputValue"> -->
  414. <!-- <div class="text" >{{ inputValue }}</div>
  415. <div class="text">{{ }}</div> -->
  416. <!-- <textarea
  417. v-model="inputText"
  418. rows="2"
  419. maxlength="15"
  420. @input="onInput"
  421. /> -->
  422. <div class="input-box">
  423. <input
  424. ref="input1Ref"
  425. v-model="input1"
  426. @input="handleInput1"
  427. @keyup="checkInput1"
  428. >
  429. <input
  430. ref="input2Ref"
  431. v-model="input2"
  432. :readonly="input1.length < 7"
  433. @input="handleInput2"
  434. @keyup="checkInput2"
  435. >
  436. <div class="tips">
  437. 请输入内容
  438. </div>
  439. </div>
  440. <div
  441. class="cencel-btn"
  442. @click="isShowToastFromGame = false"
  443. >
  444. 取消
  445. </div>
  446. <div
  447. class="yes-btn"
  448. @click="saveTitle"
  449. >
  450. 保存
  451. </div>
  452. </div>
  453. </div>
  454. <!-- 线上展厅 -->
  455. <div
  456. v-if="isShowScenePage"
  457. class="scene-box"
  458. >
  459. <BtnBack
  460. class="scene-back"
  461. @click="closeScene()"
  462. />
  463. <iframe
  464. src="https://www.4dkankan.com/spg.html?m=KJ-et2X3su4ofm"
  465. frameborder="0"
  466. />
  467. </div>
  468. </div>
  469. </template>
  470. <script setup>
  471. import {
  472. ref,
  473. computed,
  474. watch,
  475. onMounted,
  476. onBeforeMount,
  477. inject,
  478. nextTick,
  479. } from "vue"
  480. import { useRoute, useRouter } from "vue-router"
  481. import { useStore } from "vuex"
  482. import PoemList from "@/views/PoemList.vue"
  483. import paintingList from "@/views/PaintingList.vue"
  484. import useSmoothSwipe from "@/useFunctions/useSmoothSwipe.js"
  485. import { useWindowSize } from "@vueuse/core"
  486. import OperationTip from "@/components/OperationTip.vue"
  487. import useSizeAdapt from "@/useFunctions/useSizeAdapt.js"
  488. import PaginationComp from "@/components/PaginationComp.vue"
  489. const route = useRoute()
  490. const router = useRouter()
  491. const store = useStore()
  492. const $env = inject("$env")
  493. const isShowGamePage = ref(false)
  494. const isShowScenePage = ref(false)
  495. const isShowToastFromGame = ref(false)
  496. const OpenScene = () => {
  497. isShowScenePage.value = true
  498. const musicDom = document.getElementById('bg-music')
  499. musicDom.pause()
  500. }
  501. const closeScene = () => {
  502. isShowScenePage.value = false
  503. const musicDom = document.getElementById('bg-music')
  504. musicDom.play()
  505. }
  506. const input1 = ref("")
  507. const input2 = ref("")
  508. const input1Ref = ref(null)
  509. const input2Ref = ref(null)
  510. const handleInput1 = () => {
  511. console.log("第一个框得内容", input1.value)
  512. if (input1.value.length >= 7) {
  513. input1.value = input1.value.slice(0, 7) // 限制输入长度
  514. input2Ref.value.focus() // 聚焦到第二个输入框
  515. }
  516. }
  517. const checkInput1 = (event) => {
  518. if (event.key === "Backspace" && input1.value.length === 0) {
  519. input2.value = "" // 清空第二个输入框
  520. input1Ref.value.focus() // 聚焦回到第一个输入框
  521. }
  522. }
  523. const handleInput2 = () => {
  524. // 这里可以添加类似的逻辑,但通常不需要,因为我们假设第二个输入框不会自动跳转回去
  525. if (input2.value.length >= 7) {
  526. input2.value = input2.value.slice(0, 7)
  527. }
  528. }
  529. const checkInput2 = (event) => {
  530. if (event.key === "Backspace" && input2.value.length === 0) {
  531. input1Ref.value.focus() // 如果需要从第二个输入框清空后聚焦回第一个输入框
  532. }
  533. }
  534. const saveTitle = () => {
  535. var iframe = document.getElementById("gameIframe")
  536. var iframeWindow = iframe.contentWindow || window.frames["yourIframeId"]
  537. if (iframeWindow) {
  538. iframeWindow.saveTitle(
  539. input1.value.length >= 7
  540. ? input1.value + "\n" + input2.value
  541. : input1.value
  542. )
  543. isShowToastFromGame.value = false
  544. }
  545. }
  546. const { windowSizeInCssForRef, windowSizeWhenDesignForRef } = useSizeAdapt()
  547. const windowWidthDesign = 1560
  548. const windowHeightDesign = 844
  549. const scrollTarget = ref(null)
  550. const { width: windowWidth, height: windowHeight } = useWindowSize()
  551. const maxTranslateLength = computed(() => {
  552. return (windowHeight.value * windowWidthDesign) / windowHeightDesign
  553. })
  554. const positionNumInit = computed(() => {
  555. console.log("x=", windowWidth.value / windowHeight.value)
  556. return windowWidth.value / windowHeight.value >= 0.5 ? 236 : 206
  557. })
  558. const {
  559. onSwipeLeft,
  560. onswipeRight,
  561. haveSwipedThisTime,
  562. translateLength,
  563. currentAnchorIdx,
  564. goingToAnchorIdx,
  565. } = useSmoothSwipe({
  566. scrollTargetRef: scrollTarget,
  567. maxTranslateLength,
  568. viewportWidth: windowWidth,
  569. anchorPosList: [
  570. (maxTranslateLength.value * positionNumInit.value) / windowWidthDesign -
  571. windowWidth.value / 2,
  572. (maxTranslateLength.value * 800) / windowWidthDesign -
  573. windowWidth.value / 2,
  574. (maxTranslateLength.value * 1320) / windowWidthDesign -
  575. windowWidth.value / 2,
  576. (maxTranslateLength.value * 1840) / windowWidthDesign -
  577. windowWidth.value / 2,
  578. // maxTranslateLength.value - windowWidth.value
  579. ],
  580. initialAnchorIdx: Number(route.query.anchorIdx) || 0,
  581. })
  582. const bgInitialLeft = -30
  583. const bgLeft = ref(bgInitialLeft)
  584. const bgSpeedFactor = 0.8 * 0.8 * 0.8 * 0.8
  585. watch(
  586. translateLength,
  587. (v) => {
  588. bgLeft.value = bgInitialLeft - v * bgSpeedFactor
  589. },
  590. {
  591. immediate: true,
  592. }
  593. )
  594. const curPercentage = computed(() => {
  595. return currentAnchorIdx.value
  596. }, { immediate: true })
  597. const layer4SpeedFactor = 0.8 * 0.8 * 0.8
  598. const layer4InitialLeft = 0
  599. const layer4Left = ref(layer4InitialLeft)
  600. watch(
  601. translateLength,
  602. (v) => {
  603. layer4Left.value = layer4InitialLeft - v * layer4SpeedFactor
  604. },
  605. {
  606. immediate: true,
  607. }
  608. )
  609. const layer3SpeedFactor = 0.8 * 0.8
  610. const layer3InitialLeft = 0
  611. const layer3Left = ref(layer3InitialLeft)
  612. watch(
  613. translateLength,
  614. (v) => {
  615. layer3Left.value = layer3InitialLeft - v * layer3SpeedFactor
  616. },
  617. {
  618. immediate: true,
  619. }
  620. )
  621. const layer2SpeedFactor = 0.8
  622. const layer2InitialLeft = 0
  623. const layer2Left = ref(layer2InitialLeft)
  624. watch(
  625. translateLength,
  626. (v) => {
  627. layer2Left.value = layer2InitialLeft - v * layer2SpeedFactor
  628. },
  629. {
  630. immediate: true,
  631. }
  632. )
  633. const layer1InitialLeft = 0
  634. const layer1Left = ref(layer1InitialLeft)
  635. watch(
  636. translateLength,
  637. (v) => {
  638. layer1Left.value = layer1InitialLeft - v
  639. },
  640. {
  641. immediate: true,
  642. }
  643. )
  644. const isShowOperationTip = ref(true)
  645. const unwatch = watch(translateLength, (v) => {
  646. isShowOperationTip.value = false
  647. unwatch()
  648. // if (Math.abs(v - (scrollerEl.value.scrollHeight - scrollerEl.value.clientHeight)) <= 1) {
  649. // router.push({
  650. // name: 'MoreContent',
  651. // })
  652. // }
  653. })
  654. const videoFadeAtShuangGouEl = ref(null)
  655. const isShowVideoFadeAtShuangGou = ref(false)
  656. function onClickShuangGouEntry() {
  657. isShowVideoFadeAtShuangGou.value = true
  658. nextTick(() => {
  659. videoFadeAtShuangGouEl.value.play()
  660. })
  661. }
  662. const videoFadeAtMoZhuEl = ref(null)
  663. const isShowVideoFadeAtMoZhu = ref(false)
  664. function onClickEntryAtMoZhu(pathName) {
  665. if (pathName === "PoemList") {
  666. isShowVideoFadeAtMoZhu.value = true
  667. nextTick(() => {
  668. videoFadeAtMoZhuEl.value.addEventListener("ended", () => {
  669. router.replace({
  670. name: pathName,
  671. })
  672. })
  673. videoFadeAtMoZhuEl.value.play()
  674. })
  675. } else {
  676. router.replace({
  677. name: pathName,
  678. })
  679. }
  680. }
  681. const videoFadeAtPage3El = ref(null)
  682. const isShowVideoFadeAtPage3 = ref(false)
  683. watch(goingToAnchorIdx, (v) => {
  684. if (v === 2) {
  685. // 跳转到尾页
  686. // setTimeout(() => {
  687. // isShowVideoFadeAtPage3.value = true
  688. // nextTick(() => {
  689. // videoFadeAtPage3El.value.addEventListener('ended', () => {
  690. // router.push({
  691. // name: 'Game',
  692. // })
  693. // })
  694. // videoFadeAtPage3El.value.play()
  695. // })
  696. // }, 850)
  697. }
  698. })
  699. const isReady = ref(true)
  700. onBeforeMount(() => {
  701. // 第一个页面跳转 要白屏渐进 其他页面不用
  702. if (route.query.anchorIdx) {
  703. if (route.query.anchorIdx == 0) isReady.value = false
  704. } else isReady.value = false
  705. window.addEventListener("resize", () => {
  706. window.setTimeout(() => {
  707. // 根元素
  708. const dom = document.querySelector("#app")
  709. if (dom && document.documentElement.clientWidth < 1000) {
  710. windowWidth.value = document.documentElement.clientWidth
  711. windowHeight.value = document.documentElement.clientHeight
  712. }
  713. }, 100)
  714. })
  715. if (!isReady.value) {
  716. setTimeout(() => {
  717. isReady.value = true
  718. }, 300)
  719. }
  720. })
  721. onMounted(() => {
  722. window.dispatchEvent(new Event("resize"))
  723. // const dom = document.querySelector("#app")
  724. windowWidth.value = window.windowWidth
  725. windowHeight.value = window.windowHeight
  726. window.closeGame = () => {
  727. isShowGamePage.value = false
  728. }
  729. window.isShowToastFromGame = () => {
  730. isShowToastFromGame.value = true
  731. input1.value = ""
  732. input2.value = ""
  733. }
  734. })
  735. </script>
  736. <style lang="less" scoped>
  737. .button-common-style {
  738. font-family: KaiTi, KaiTi;
  739. font-weight: 400;
  740. font-size: calc(16px * v-bind("windowHeight") / v-bind("windowHeightDesign"));
  741. writing-mode: vertical-lr;
  742. letter-spacing: 0.2em;
  743. white-space: pre;
  744. color: #b8ae7a;
  745. }
  746. .group-title-common-style {
  747. font-family: KingHwa_OldSong, KingHwa_OldSong;
  748. font-weight: 400;
  749. font-size: calc(48px * v-bind("windowHeight") / v-bind("windowHeightDesign"));
  750. color: #474747;
  751. writing-mode: vertical-lr;
  752. letter-spacing: 0.2em;
  753. white-space: pre;
  754. }
  755. .more-content {
  756. background-color: #fefefe;
  757. position: absolute;
  758. left: 0;
  759. top: 0;
  760. width: 100%;
  761. height: 100%;
  762. user-select: none;
  763. > .scroll-target {
  764. height: 100%;
  765. width: 100%;
  766. display: flex;
  767. gap: 100px;
  768. overflow: hidden;
  769. > img.bg {
  770. position: absolute;
  771. height: 100%;
  772. }
  773. > .layer-4 {
  774. position: absolute;
  775. height: 100%;
  776. > .bamboo-4_01 {
  777. position: absolute;
  778. left: calc(
  779. 0 * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  780. v-bind("windowHeightDesign")
  781. );
  782. bottom: 0;
  783. height: calc(
  784. 300px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  785. );
  786. }
  787. > .bamboo-4_02 {
  788. position: absolute;
  789. bottom: 0;
  790. left: calc(
  791. 120px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  792. );
  793. height: calc(
  794. 380px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  795. );
  796. }
  797. > .bamboo-4_03 {
  798. position: absolute;
  799. bottom: 0;
  800. left: calc(
  801. 880px * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  802. v-bind("windowHeightDesign")
  803. );
  804. height: calc(
  805. 518px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  806. );
  807. }
  808. > .bamboo-4_04 {
  809. position: absolute;
  810. bottom: 0;
  811. left: calc(
  812. 870px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  813. );
  814. height: 100%;
  815. }
  816. > .bamboo-4_05 {
  817. position: absolute;
  818. bottom: 0;
  819. left: calc(
  820. 450px * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  821. v-bind("windowHeightDesign")
  822. );
  823. height: 100%;
  824. }
  825. > .bamboo-4_06 {
  826. position: absolute;
  827. bottom: 0;
  828. left: calc(
  829. 520px * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  830. v-bind("windowHeightDesign")
  831. );
  832. height: 100%;
  833. }
  834. > .bamboo-4_07 {
  835. position: absolute;
  836. bottom: 0;
  837. left: calc(
  838. 950px * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  839. v-bind("windowHeightDesign")
  840. );
  841. height: 100%;
  842. }
  843. > .bamboo-4_08 {
  844. position: absolute;
  845. bottom: 0;
  846. height: calc(
  847. 380px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  848. );
  849. left: calc(
  850. 1553px * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  851. v-bind("windowHeightDesign")
  852. );
  853. }
  854. > .bamboo-4_09 {
  855. position: absolute;
  856. bottom: 0;
  857. left: calc(
  858. 1345px * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  859. v-bind("windowHeightDesign")
  860. );
  861. height: 100%;
  862. }
  863. > .bamboo-4_10 {
  864. position: absolute;
  865. bottom: 0;
  866. left: calc(
  867. 1403px * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  868. v-bind("windowHeightDesign")
  869. );
  870. height: 100%;
  871. }
  872. > .bamboo-4_11 {
  873. position: absolute;
  874. bottom: 0;
  875. left: calc(
  876. 970px * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  877. v-bind("windowHeightDesign")
  878. );
  879. height: 100%;
  880. }
  881. > .bamboo-4_12 {
  882. position: absolute;
  883. bottom: 0;
  884. left: calc(
  885. 1403px * v-bind("layer4SpeedFactor") * v-bind("windowHeight") /
  886. v-bind("windowHeightDesign")
  887. );
  888. height: 100%;
  889. }
  890. }
  891. > .layer-3 {
  892. position: absolute;
  893. height: 100%;
  894. > .bamboo-3_01 {
  895. position: absolute;
  896. top: 0;
  897. height: 100%;
  898. left: calc(
  899. 480px * v-bind("layer3SpeedFactor") * v-bind("windowHeight") /
  900. v-bind("windowHeightDesign")
  901. );
  902. }
  903. > .bamboo-3_02 {
  904. position: absolute;
  905. top: 0;
  906. height: 100%;
  907. left: calc(
  908. 647px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  909. );
  910. }
  911. > .bamboo-3_03 {
  912. position: absolute;
  913. top: 0;
  914. height: 100%;
  915. left: calc(
  916. 1290px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  917. );
  918. }
  919. > .bamboo-3_04 {
  920. position: absolute;
  921. top: 0;
  922. height: 100%;
  923. left: calc(
  924. 867px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  925. );
  926. }
  927. }
  928. > .layer-3 {
  929. position: absolute;
  930. height: 100%;
  931. > .bamboo-3_01 {
  932. position: absolute;
  933. top: 0;
  934. height: 100%;
  935. left: calc(
  936. 300px * v-bind("layer3SpeedFactor") * v-bind("windowHeight") /
  937. v-bind("windowHeightDesign")
  938. );
  939. }
  940. > .bamboo-2_03 {
  941. display: none;
  942. position: absolute;
  943. top: 0;
  944. height: 100%;
  945. left: calc(
  946. 880px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  947. );
  948. }
  949. > .bamboo-3_03 {
  950. position: absolute;
  951. top: 0;
  952. height: 100%;
  953. left: calc(
  954. 1290px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  955. );
  956. }
  957. > .bamboo-3_04 {
  958. position: absolute;
  959. top: 0;
  960. height: 100%;
  961. left: calc(
  962. 867px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  963. );
  964. }
  965. }
  966. > .layer-2 {
  967. position: absolute;
  968. height: 100%;
  969. > .bamboo-2_01 {
  970. position: absolute;
  971. top: 0;
  972. height: 100%;
  973. left: calc(
  974. 0px * v-bind("layer2SpeedFactor") * v-bind("windowHeight") /
  975. v-bind("windowHeightDesign")
  976. );
  977. }
  978. > .bamboo-2_03 {
  979. position: absolute;
  980. top: 0;
  981. height: 100%;
  982. left: calc(
  983. 355px * v-bind("layer2SpeedFactor") * v-bind("windowHeight") /
  984. v-bind("windowHeightDesign")
  985. );
  986. }
  987. > .bamboo-2_02 {
  988. position: absolute;
  989. top: 0;
  990. height: 100%;
  991. left: calc(
  992. 846px * v-bind("layer2SpeedFactor") * v-bind("windowHeight") /
  993. v-bind("windowHeightDesign")
  994. );
  995. }
  996. // >.bamboo-2_03{
  997. // position: absolute;
  998. // top: 0;
  999. // height: 100%;
  1000. // left: calc(920px * v-bind('layer2SpeedFactor') * v-bind('windowHeight') / v-bind('windowHeightDesign'));
  1001. // }
  1002. > .bamboo-2_04 {
  1003. position: absolute;
  1004. top: 0;
  1005. height: 100%;
  1006. left: calc(
  1007. 1281px * v-bind("layer2SpeedFactor") * v-bind("windowHeight") /
  1008. v-bind("windowHeightDesign")
  1009. );
  1010. }
  1011. > .bamboo-2_04-1 {
  1012. position: absolute;
  1013. top: 0;
  1014. height: 100%;
  1015. left: calc(
  1016. 1863px * v-bind("layer2SpeedFactor") * v-bind("windowHeight") /
  1017. v-bind("windowHeightDesign")
  1018. );
  1019. }
  1020. > .bamboo-2_05 {
  1021. position: absolute;
  1022. top: 0;
  1023. height: 100%;
  1024. left: calc(
  1025. 997px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1026. );
  1027. }
  1028. }
  1029. > .layer-1 {
  1030. position: absolute;
  1031. height: 100%;
  1032. > .bamboo-1_01 {
  1033. position: absolute;
  1034. top: 0;
  1035. height: 100%;
  1036. left: 0;
  1037. }
  1038. > .hotspot {
  1039. position: absolute;
  1040. top: calc(
  1041. 385px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1042. );
  1043. left: calc(
  1044. 71px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1045. );
  1046. }
  1047. > .shuang-gou-she-se-group {
  1048. z-index: 100;
  1049. position: absolute;
  1050. top: calc(
  1051. 245px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1052. );
  1053. left: calc(
  1054. 216px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1055. );
  1056. > .watch-detail {
  1057. position: absolute;
  1058. top: calc(
  1059. 132px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1060. );
  1061. left: 0;
  1062. background-image: url(@/assets/images/fade-chapter-btn-bg-big.png);
  1063. background-size: contain;
  1064. background-repeat: no-repeat;
  1065. background-position: center center;
  1066. padding-top: calc(
  1067. 3px / v-bind("windowSizeWhenDesignForRef") *
  1068. v-bind("windowSizeInCssForRef")
  1069. );
  1070. .button-common-style();
  1071. }
  1072. > div.group-title {
  1073. position: absolute;
  1074. top: 0;
  1075. left: calc(
  1076. 41px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1077. );
  1078. .group-title-common-style();
  1079. > img.deco {
  1080. position: absolute;
  1081. bottom: 0.9em;
  1082. right: -0.05em;
  1083. width: calc(
  1084. 16 / v-bind("windowSizeWhenDesignForRef") *
  1085. v-bind("windowSizeInCssForRef")
  1086. );
  1087. height: calc(
  1088. 16 / v-bind("windowSizeWhenDesignForRef") *
  1089. v-bind("windowSizeInCssForRef")
  1090. );
  1091. }
  1092. }
  1093. }
  1094. // 第三页
  1095. .shuang-gou-she-se-group3{
  1096. left: calc(
  1097. 1280px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1098. );
  1099. }
  1100. > .bamboo-1_02 {
  1101. position: absolute;
  1102. top: 0;
  1103. height: 100%;
  1104. left: calc(
  1105. 433px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1106. );
  1107. }
  1108. > .mo-zhu-group {
  1109. position: absolute;
  1110. top: calc(
  1111. 245px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1112. );
  1113. left: calc(
  1114. 795px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1115. );
  1116. > .button-group {
  1117. position: absolute;
  1118. width: calc(
  1119. 20 / v-bind("windowSizeWhenDesignForRef") *
  1120. v-bind("windowSizeInCssForRef")
  1121. );
  1122. top: calc(
  1123. 75px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1124. );
  1125. left: 0;
  1126. display: flex;
  1127. flex-direction: column;
  1128. gap: calc(
  1129. 20 / v-bind("windowSizeWhenDesignForRef") *
  1130. v-bind("windowSizeInCssForRef")
  1131. );
  1132. > div {
  1133. .button-common-style();
  1134. background-image: url(@/assets/images/fade-chapter-btn-bg-small.png);
  1135. background-size: contain;
  1136. background-repeat: no-repeat;
  1137. background-position: center center;
  1138. padding-top: calc(
  1139. 3px / v-bind("windowSizeWhenDesignForRef") *
  1140. v-bind("windowSizeInCssForRef")
  1141. );
  1142. }
  1143. }
  1144. > div.group-title {
  1145. position: absolute;
  1146. top: 0;
  1147. left: calc(
  1148. 41px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1149. );
  1150. .group-title-common-style();
  1151. > img.deco {
  1152. position: absolute;
  1153. bottom: 0.9em;
  1154. right: 0.1em;
  1155. width: calc(
  1156. 16 / v-bind("windowSizeWhenDesignForRef") *
  1157. v-bind("windowSizeInCssForRef")
  1158. );
  1159. height: calc(
  1160. 16 / v-bind("windowSizeWhenDesignForRef") *
  1161. v-bind("windowSizeInCssForRef")
  1162. );
  1163. }
  1164. }
  1165. }
  1166. > .wei-ye-group {
  1167. position: absolute;
  1168. top: calc(
  1169. 170px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1170. );
  1171. left: calc(
  1172. 1776px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1173. );
  1174. font-family: "KingHwa_OldSong";
  1175. color: white;
  1176. z-index: 2;
  1177. width: calc(
  1178. 200 / v-bind("windowSizeWhenDesignForRef") *
  1179. v-bind("windowSizeInCssForRef")
  1180. );
  1181. // background: green;
  1182. > .game-box {
  1183. width: calc(
  1184. 200 / v-bind("windowSizeWhenDesignForRef") *
  1185. v-bind("windowSizeInCssForRef")
  1186. );
  1187. background: url(@/assets/images/game-bg.png);
  1188. background-size: 100% 100%;
  1189. padding: calc(
  1190. 70 / v-bind("windowSizeWhenDesignForRef") *
  1191. v-bind("windowSizeInCssForRef")
  1192. );
  1193. white-space: nowrap;
  1194. display: flex;
  1195. justify-content: center;
  1196. align-items: center;
  1197. margin-top: calc(
  1198. 62 / v-bind("windowSizeWhenDesignForRef") *
  1199. v-bind("windowSizeInCssForRef")
  1200. );
  1201. margin-left: calc(
  1202. -30 / v-bind("windowSizeWhenDesignForRef") * v-bind("windowSizeInCssForRef")
  1203. );
  1204. font-size: calc(
  1205. 20 / v-bind("windowSizeWhenDesignForRef") *
  1206. v-bind("windowSizeInCssForRef")
  1207. );
  1208. }
  1209. > .online-box {
  1210. font-weight: 700;
  1211. color: #768c77;
  1212. width: calc(
  1213. 200 / v-bind("windowSizeWhenDesignForRef") *
  1214. v-bind("windowSizeInCssForRef")
  1215. );
  1216. white-space: nowrap;
  1217. display: flex;
  1218. justify-content: center;
  1219. align-items: center;
  1220. margin-left: calc(
  1221. -25 / v-bind("windowSizeWhenDesignForRef") *
  1222. v-bind("windowSizeInCssForRef")
  1223. );
  1224. font-size: calc(
  1225. 20 / v-bind("windowSizeWhenDesignForRef") *
  1226. v-bind("windowSizeInCssForRef")
  1227. );
  1228. }
  1229. }
  1230. > .bamboo-1_03 {
  1231. position: absolute;
  1232. top: 0;
  1233. height: 100%;
  1234. left: calc(
  1235. 870px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1236. );
  1237. }
  1238. > .bamboo-1_04 {
  1239. position: absolute;
  1240. top: 0;
  1241. height: 100%;
  1242. left: calc(
  1243. 1365px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1244. );
  1245. }
  1246. > .bamboo-1_05 {
  1247. position: absolute;
  1248. top: 0;
  1249. height: 100%;
  1250. left: calc(
  1251. 1891px * v-bind("windowHeight") / v-bind("windowHeightDesign")
  1252. );
  1253. }
  1254. }
  1255. }
  1256. > .pagination {
  1257. position: absolute;
  1258. left: 50%;
  1259. transform: translateX(-50%);
  1260. bottom: calc(
  1261. 22 / v-bind("windowSizeWhenDesignForRef") *
  1262. v-bind("windowSizeInCssForRef")
  1263. );
  1264. }
  1265. > .operation-tip {
  1266. position: absolute;
  1267. right: calc(
  1268. 44 / v-bind("windowSizeWhenDesignForRef") *
  1269. v-bind("windowSizeInCssForRef")
  1270. );
  1271. bottom: calc(
  1272. 74 / v-bind("windowSizeWhenDesignForRef") *
  1273. v-bind("windowSizeInCssForRef")
  1274. );
  1275. }
  1276. .RWbox {
  1277. position: absolute;
  1278. left: 0;
  1279. top: 0;
  1280. width: 100%;
  1281. height: 100%;
  1282. .RWvideoTxt {
  1283. width: 18%;
  1284. position: absolute;
  1285. z-index: 10;
  1286. top: 32%;
  1287. left: 44%;
  1288. }
  1289. & > video {
  1290. width: 100%;
  1291. }
  1292. }
  1293. > .fade-to-other-page {
  1294. position: absolute;
  1295. left: 0;
  1296. top: 0;
  1297. width: 100%;
  1298. height: 100%;
  1299. object-fit: cover;
  1300. object-position: top;
  1301. }
  1302. > .game-box {
  1303. width: 100%;
  1304. height: 100%;
  1305. position: fixed;
  1306. top: 0;
  1307. left: 0;
  1308. z-index: 100;
  1309. > iframe {
  1310. width: 100%;
  1311. height: 100%;
  1312. position: absolute;
  1313. top: 0;
  1314. left: 0;
  1315. }
  1316. .edit-box {
  1317. width: 125%;
  1318. height: 35vh;
  1319. display: flex;
  1320. flex-direction: column;
  1321. justify-content: center;
  1322. align-items: center;
  1323. background: url(@/assets/images/game-tip.png);
  1324. background-size: 100% 100%;
  1325. position: absolute;
  1326. top: 50%;
  1327. left: 50%;
  1328. transform: translate(-50%, -50%);
  1329. z-index: 2;
  1330. font-family: "KaiTi";
  1331. > .input-box {
  1332. width: 50%;
  1333. display: flex;
  1334. flex-direction: column;
  1335. margin-bottom: 10%;
  1336. margin-right: 5%;
  1337. > input {
  1338. width: 100%;
  1339. height: 45px;
  1340. background: none;
  1341. border: none;
  1342. font-size: 20px;
  1343. white-space: pre-wrap;
  1344. color: white;
  1345. border-bottom: 1px solid rgba(255, 255, 255, 0.548);
  1346. font-family: "KaiTi";
  1347. letter-spacing: 2px;
  1348. }
  1349. .tips {
  1350. font-family: "KaiTi";
  1351. font-size: 14px;
  1352. margin-top: calc(
  1353. 5 / v-bind("windowSizeWhenDesignForRef") *
  1354. v-bind("windowSizeInCssForRef")
  1355. );
  1356. color: rgba(255, 255, 255, 0.418);
  1357. }
  1358. }
  1359. > textarea {
  1360. width: 34%;
  1361. height: 40%;
  1362. background: none;
  1363. border: none;
  1364. font-size: 20px;
  1365. white-space: pre-wrap;
  1366. }
  1367. > .cencel-btn {
  1368. // width: calc(70 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  1369. // height: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  1370. background: url(@/assets/images/game-tip-cancel.png);
  1371. background-size: 100% 100%;
  1372. display: flex;
  1373. justify-content: center;
  1374. align-items: center;
  1375. color: #ffffff;
  1376. position: absolute;
  1377. left: 30%;
  1378. bottom: calc(
  1379. 60 / v-bind("windowSizeWhenDesignForRef") *
  1380. v-bind("windowSizeInCssForRef")
  1381. );
  1382. padding: 5px 10px;
  1383. font-family: "KaiTi";
  1384. }
  1385. > .yes-btn {
  1386. // width: calc(70 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  1387. // height: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
  1388. background: url(@/assets/images/game-tip-yes.png);
  1389. background-size: 100% 100%;
  1390. display: flex;
  1391. justify-content: center;
  1392. align-items: center;
  1393. color: #f4e09d;
  1394. position: absolute;
  1395. right: 38%;
  1396. bottom: calc(
  1397. 60 / v-bind("windowSizeWhenDesignForRef") *
  1398. v-bind("windowSizeInCssForRef")
  1399. );
  1400. padding: 5px 10px;
  1401. font-family: "KaiTi";
  1402. }
  1403. }
  1404. }
  1405. > .scene-box {
  1406. width: 100%;
  1407. height: 100%;
  1408. position: fixed;
  1409. position: fixed;
  1410. top: 0;
  1411. left: 0;
  1412. z-index: 100;
  1413. > .scene-back {
  1414. position: absolute;
  1415. left: 20px;
  1416. top: 25px;
  1417. transform: scale(1.2);
  1418. z-index: 2;
  1419. }
  1420. > iframe {
  1421. width: 100%;
  1422. height: 100%;
  1423. position: absolute;
  1424. top: 0;
  1425. left: 0;
  1426. }
  1427. }
  1428. }
  1429. </style>