menu.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854
  1. <template>
  2. <div class="pinBottom-container" @touchstart.stop @keydown.stop>
  3. <div class="pinBottom center">
  4. <div id="view-controllers"></div>
  5. </div>
  6. <!-- 返回按钮 -->
  7. <div class="backBtn" @click="goBack" v-if="screenWidth > 1000">
  8. <img class="imgLimit"
  9. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  10. :src="require(`@/assets/img/back.png`)" />
  11. <span>返回</span>
  12. </div>
  13. <!-- 展开按钮 -->
  14. <div class="myViewShowBox" @click="viewShow = true" :class="{ myViewShowBoxAc: !viewShow }">
  15. <img :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 48) + 'px' : '30px' }"
  16. :src="require(`@/assets/img/show.png`)" />
  17. </div>
  18. <!-- 展开收起小地图 -->
  19. <div class="smMapBox" :class="{ smMapBoxHide: !smMapShow }">
  20. <div class="smMapBoxSon" @click="smMapShow = !smMapShow">
  21. <img src="../../assets/img/mapIcon.svg" alt="" />
  22. </div>
  23. </div>
  24. <!-- 音乐按钮 -->
  25. <div class="myMusicBox" id="volume">
  26. <div>
  27. <img id="openMusic" style="display: block !important" @click="switchBGM(true)" src="../../assets/img/openM.png"
  28. alt="" title="打开音乐" />
  29. <img id="closeMusic" style="display: none !important" @click="switchBGM(false)" src="../../assets/img/closeM.png"
  30. alt="" title="关闭音乐" />
  31. </div>
  32. </div>
  33. <div id="lineTop" class="pinBottom left" :class="{ viewShowAc: !viewShow }"
  34. :style="{ bottom: timer ? '140px' : !isGuide && screenWidth > 1000 ? '150px ' : isGuide && screenWidth > 1000 ? '20px ' : '0px ' }">
  35. <div>
  36. <div class="viewContainer">
  37. <div class="viewXian">
  38. <!-- 线段 -->
  39. <img src="../../assets/img/xian.png" alt="" />
  40. <!-- 收起按钮 -->
  41. <div class="viewShowIcon" @click="viewShow = false">
  42. <img :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 48) + 'px' : '30px' }"
  43. :src="require(`@/assets/img/hide.png`)" />
  44. </div>
  45. </div>
  46. <div id="previous" class="previous desktop-only ui-icon" style="display: none">
  47. <a>
  48. <img rel="tooltip" title="" :src="require('@/assets/images/play.png')" data-original-title="播放" />
  49. </a>
  50. </div>
  51. <div id="play" class="ui-icon" rel="tooltip" data-original-title="播放"
  52. :style="{ marginTop: screenWidth < 1000 ? '-5px' : '' }">
  53. <!-- icon文字 -->
  54. <div class="iconTxt"
  55. :style="{ paddingLeft: screenWidth > 1000 && screenWidth < 2000 ? '80px' : '', bottom: screenWidth < 1000 ? '-14px' : '-18px' }">
  56. {{
  57. screenWidth < 1000 ? '自动导览' : '〚自动导览〛' }}</div>
  58. <a>
  59. <img class="imgLimit"
  60. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  61. :src="require('@/assets/images/icon/play.png')" />
  62. </a>
  63. </div>
  64. <div id="pause" class="ui-icon" style="display: none"
  65. :style="{ marginTop: screenWidth < 1000 ? '-5px' : '' }">
  66. <!-- icon文字 -->
  67. <div class="iconTxt iconTxtAc"
  68. :style="{ paddingLeft: screenWidth > 1000 && screenWidth < 2000 ? '80px' : '', bottom: screenWidth < 1000 ? '-14px' : '-18px' }">
  69. {{ screenWidth < 1000 ? '自动导览' : '〚自动导览〛' }}</div>
  70. <a>
  71. <img class="imgLimit"
  72. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  73. rel="tooltip" title="" :src="require('@/assets/images/icon/pause.png')" data-original-title="暂停" />
  74. </a>
  75. </div>
  76. <div id="next" class="next desktop-only ui-icon wide" style="display: none">
  77. <a>
  78. <i rel="tooltip" title="" class="icon icon-dpad-right" data-original-title="下一个"></i>
  79. </a>
  80. </div>
  81. <div id="gui-modes-map" class="ui-icon double active">
  82. <div data-original-title="导览" @click="isGuide = !isGuide" id="pullTab" rel="tooltip" title="场景导览"
  83. :style="{ paddingLeft: screenWidth > 1000 && screenWidth < 2000 ? '100px' : '', }">
  84. <!-- icon文字 -->
  85. <div class="iconTxt" :class="{ iconTxtAc: !isGuide }"
  86. :style="{ marginLeft: screenWidth > 1000 && screenWidth < 2000 ? '50px' : '' }">
  87. {{ screenWidth < 1000 ? '导览列表' : '〚导览列表〛' }} </div>
  88. <img
  89. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  90. title="" class="icon icon-inside imgLimit" :src="require(`@/assets/images/icon/auto${!isGuide ? '_active' : ''
  91. }.png`)
  92. " />
  93. </div>
  94. <!-- 热点列表 -->
  95. <div class="hotListBox" @click="meanInd = true"
  96. :style="{ paddingRight: screenWidth > 1000 && screenWidth < 2000 ? '' : '', paddingLeft: screenWidth > 2000 ? '' : '' }">
  97. <div class="iconTxt" v-show="showHotList" :style="{ bottom: screenWidth < 1000 ? '-14px' : '-18px' }">
  98. {{ screenWidth < 1000 ? '热点列表' : '〚热点列表〛' }}</div>
  99. <div class="hotListSon" v-show="showHotList">
  100. <img class="imgLimit"
  101. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  102. :src="require(`@/assets/images/icon/${meanInd ? 'hotAc' : 'hot'
  103. }.png`)
  104. " />
  105. </div>
  106. </div>
  107. <div data-original-title="全景漫游" id="gui-modes-inside" rel="tooltip">
  108. <img
  109. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  110. class="icon icon-inside imgLimit" :src="require('@/assets/images/icon/inside.png')" />
  111. <img
  112. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  113. class="icon icon-inside active imgLimit"
  114. :src="require('@/assets/images/icon/inside_active.png')" />
  115. </div>
  116. <div title="迷你漫游" data-original-title="迷你模型" id="gui-modes-dollhouse" rel="tooltip"
  117. :style="{ paddingRight: screenWidth > 1000 && screenWidth < 2000 ? '80px' : '', paddingLeft: screenWidth > 2000 ? '' : '' }">
  118. <!-- icon文字 -->
  119. <div class="iconTxt"
  120. :style="{ paddingRight: screenWidth > 1000 && screenWidth < 2000 ? '80px' : '', marginLeft: screenWidth > 2000 ? '' : '' }">
  121. {{ screenWidth < 1000 ? '迷你模型' : '〚迷你模型〛' }}</div>
  122. <img
  123. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  124. class="icon icon-inside" :src="require('@/assets/images/icon/dollhouse.png')" />
  125. <img
  126. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  127. class="icon icon-inside active" :src="require('@/assets/images/icon/dollhouse_active.png')" />
  128. </div>
  129. <div data-original-title="俯视图" id="gui-modes-floorplan" rel="tooltip" title="顶部俯视"
  130. :style="{ paddingRight: screenWidth > 1000 && screenWidth < 2000 ? '40px' : '', paddingLeft: screenWidth > 2000 ? '' : '' }">
  131. <!-- icon文字 -->
  132. <div class="iconTxt"
  133. :style="{ paddingRight: screenWidth > 1000 && screenWidth < 2000 ? '40px' : '', marginLeft: screenWidth > 2000 ? '' : '' }">
  134. {{ screenWidth < 1000 ? '俯瞰视图' : '〚俯瞰视图〛' }}</div>
  135. <img
  136. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  137. class="icon icon-inside" :src="require('@/assets/images/icon/floor.png')" />
  138. <img
  139. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  140. class="active icon icon-inside active"
  141. :src="require('@/assets/images/icon/floor_active.png')" />
  142. </div>
  143. <div title="打开音乐" data-original-title="打开音乐" id="volumeBid" rel="tooltip"
  144. :style="{ paddingLeft: screenWidth > 2000 ? '80px !important' : '' }"
  145. @click="switchBGM2(!isMusic)">
  146. <!-- icon文字 -->
  147. <div class="iconTxt" :class="isMusic ? 'iconTxtAc' : ''"
  148. :style="{ marginLeft: screenWidth > 2000 ? '40px !important' : '' }">{{
  149. isMusic ? '〚关闭音乐〛' : '〚打开音乐〛' }}</div>
  150. <img
  151. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  152. v-if="isMusic" src="../../assets/img/openM.png" title="打开音乐" />
  153. <img
  154. :style="{ width: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px', height: screenWidth > 1000 ? parseInt(screenWidth / 32) + 'px' : '40px' }"
  155. v-if="!isMusic" src="../../assets/img/closeM.png" alt="" title="关闭音乐" />
  156. </div>
  157. <div data-original-title="VR" id="vr" rel="tooltip" title="" style="display: none">
  158. <img class="icon icon-inside" :src="require('@/assets/images/VR.png')" />
  159. </div>
  160. <div data-original-title="热点列表" id="hotList" rel="tooltip" title="">
  161. <img class="icon icon-inside" :src="require('@/assets/images/hotlist.png')" />
  162. <img class="icon icon-inside active" :src="require('@/assets/images/hotlist.png')" />
  163. </div>
  164. <div data-original-title="消除外壳" id="gui-remove-face" rel="tooltip" title=""
  165. style="display: none; float: left">
  166. <img class="icon icon-inside" :src="require('@/assets/images/face.jpg')" />
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. <div class="pinBottom right hideTarget">
  173. <div class="rightViewContainer clearfix">
  174. <!-- 添加自己写的逻辑的楼层选择 -->
  175. <FloorSelect />
  176. <div class="gui-floor">
  177. <div class="gui-floor-title"></div>
  178. <div class="gui-floor-icon">
  179. <span class="gui-floor-number"></span>
  180. </div>
  181. <div class="container"></div>
  182. </div>
  183. <div id="vr" class="ui-icon wide hidden" style="display: none">
  184. <a>
  185. <i rel="tooltip" title="{[{ VIEW_IN_VR }]}" class="icon icon-webvr"></i>
  186. </a>
  187. </div>
  188. <div id="sharing" class="ui-icon wide hidden" style="display: none">
  189. <a>
  190. <i rel="tooltip" title="{[{ SOCIAL_SHARING }]}" class="icon icon-share"></i>
  191. </a>
  192. </div>
  193. <!-- <div class="pull-right terms terms2">
  194. <a>{[{ TERMS }]}</a>
  195. </div> -->
  196. </div>
  197. </div>
  198. <!-- 热点列表组件 -->
  199. <Hotspot v-if="meanInd" @close="meanInd = false" />
  200. </div>
  201. </template>
  202. <script>
  203. //引入组件
  204. import Hotspot from "./compomemt/hotspot";
  205. import FloorSelect from "./compomemt/floorSelect";
  206. export default {
  207. components: { Hotspot, FloorSelect },
  208. data() {
  209. return {
  210. // 自动导览切换
  211. isGuide: true,
  212. // 热点列表的显示和隐藏
  213. meanInd: false,
  214. // 整个导览的收起和展开
  215. viewShow: true,
  216. // 小地图的展开和收起
  217. smMapShow: true,
  218. isMusic: false,
  219. screenWidth: null,
  220. dialogWidth: 0,
  221. timer: false,
  222. showHotList: true
  223. };
  224. },
  225. watch: {
  226. // 打开热点列表的时候隐藏使用指南
  227. meanInd(val) {
  228. if (val) {
  229. const dom = document.querySelector("#interaction-modal");
  230. dom.style.opacity = "0";
  231. dom.style.pointerEvents = "none";
  232. }
  233. },
  234. // 屏幕宽度
  235. screenWidth: {
  236. handler: function (val, oldVal) {
  237. this.dialogWidth = val
  238. console.log(this.dialogWidth)
  239. },
  240. },
  241. viewShow(val) {
  242. const dom = document.querySelector("#drawer-container");
  243. if (val) {
  244. dom.style.transform = "translateX(0px)";
  245. } else {
  246. dom.style.transform = "translateX(-100vw)";
  247. }
  248. },
  249. smMapShow(val) {
  250. if (val) {
  251. $(".cad").css({ right: "0px" });
  252. } else {
  253. $(".cad").css({ right: "-140px" });
  254. }
  255. },
  256. },
  257. computed: {},
  258. mounted() {
  259. this.screenWidth = document.body.clientWidth
  260. window.onresize = () => {
  261. return (() => {
  262. this.screenWidth = document.body.clientWidth
  263. })()
  264. }
  265. if (this.screenWidth > 1000) {
  266. setTimeout(() => {
  267. this.timer = true
  268. }, 3000)
  269. setTimeout(() => {
  270. this.timer = false
  271. }, 5200)
  272. let timeA = -1
  273. timeA = window.setInterval(() => {
  274. if (window.hotData) {
  275. clearInterval(timeA)
  276. }
  277. if (window.hotData && window.myHotList && window.myHotList.length) {
  278. // 显示列表
  279. this.showHotList = true
  280. } else {
  281. this.showHotList = false
  282. }
  283. }, 500);
  284. }
  285. },
  286. methods: {
  287. goBack() {
  288. window.parent.postMessage({ command: "back" }, "*");
  289. // console.log(window.history)
  290. // // 如果有上一页,则传递信息
  291. // if (window.history.length === 1) {
  292. // window.close()
  293. // } else {
  294. // // 跨域传递信息
  295. // window.parent.postMessage({ command: "back" }, "*");
  296. // }
  297. },
  298. switchBGM(flag) {
  299. if (flag) {
  300. window.manage.switchBgmState(true);
  301. document.querySelector("#openMusic").style.display = "none";
  302. document.querySelector("#closeMusic").style.display = "block";
  303. } else {
  304. ``
  305. window.manage.switchBgmState(false);
  306. document.querySelector("#openMusic").style.display = "block";
  307. document.querySelector("#closeMusic").style.display = "none";
  308. }
  309. },
  310. switchBGM2(flag) {
  311. if (flag) {
  312. window.manage.switchBgmState(true);
  313. // document.querySelector("#openMusic").style.display = "none !important";
  314. // document.querySelector("#closeMusic").style.display = "block ";
  315. this.isMusic = true
  316. } else {
  317. window.manage.switchBgmState(false);
  318. // document.querySelector("#openMusic").style.display = "block ";
  319. // document.querySelector("#closeMusic").style.display = "none !important";
  320. this.isMusic = false
  321. }
  322. console.log(this.isMusic)
  323. },
  324. },
  325. };
  326. </script>
  327. <style lang="less" scoped>
  328. // 隐藏原本的楼层选择
  329. // .gui-floor {
  330. // display: none !important;
  331. // }
  332. #hotList {
  333. display: none !important;
  334. }
  335. ::-webkit-scrollbar {
  336. width: 5px;
  337. /*高宽分别对应横竖滚动条的尺寸*/
  338. }
  339. ::-webkit-scrollbar-thumb {
  340. // box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2);
  341. background: #edd3b0;
  342. border-color: #edd3b0;
  343. color: #edd3b0;
  344. outline: none;
  345. }
  346. #gui-modes-inside {
  347. position: relative;
  348. display: none !important;
  349. }
  350. #gui-modes-dollhouse {
  351. position: relative;
  352. }
  353. #volumeBid {
  354. position: relative;
  355. @media screen and (max-width: 1000px) {
  356. display: none !important;
  357. }
  358. }
  359. .imgLimit {
  360. max-width: 160px;
  361. max-height: 160px;
  362. min-width: 40px;
  363. min-height: 40px;
  364. }
  365. #gui-modes-floorplan {
  366. position: relative;
  367. }
  368. // 右侧菜单栏
  369. @wh: 44px;
  370. @margin: 0px;
  371. #play,
  372. #pause {
  373. margin-right: @margin;
  374. img {
  375. width: @wh;
  376. height: @wh;
  377. // @media screen and (min-width: 1000px) and (max-width: 2000px) {
  378. // width: 60px !important;
  379. // height: 60px !important;
  380. // }
  381. // @media screen and (min-width: 2000px) {
  382. // width: 80px !important;
  383. // height: 80px !important;
  384. // }
  385. }
  386. }
  387. .rightViewContainer {
  388. display: flex !important;
  389. align-items: center !important;
  390. }
  391. #gui-modes-map {
  392. // @media screen and (min-width: 2000px) {
  393. // min-width: 500px;
  394. // }
  395. >div {
  396. margin-right: @margin;
  397. >img {
  398. width: 44px;
  399. height: 44px;
  400. display: block !important;
  401. // @media screen and (min-width: 1000px) and (max-width: 2000px) {
  402. // width: 60px !important;
  403. // height: 60px !important;
  404. // }
  405. // @media screen and (min-width: 2000px) {
  406. // width: 80px !important;
  407. // height: 80px !important;
  408. // }
  409. }
  410. .active {
  411. display: none !important;
  412. }
  413. }
  414. .active {
  415. >img {
  416. display: none !important;
  417. }
  418. .active {
  419. display: block !important;
  420. }
  421. }
  422. }
  423. .pinBottom.right .ui-icon {
  424. background: none;
  425. }
  426. #gui-fullscreen img {
  427. width: 40px;
  428. }
  429. .guiUp {
  430. @media screen and (min-width:1000px) {
  431. bottom: 140px;
  432. }
  433. }
  434. #volume {
  435. width: 40px;
  436. @media screen and (min-width: 1000px) {
  437. display: none !important;
  438. }
  439. }
  440. #gui-fullscreen-exit img {
  441. width: 40px !important;
  442. }
  443. .bgandshare {
  444. background: none !important;
  445. // margin-right: 20px!important;
  446. >div {
  447. width: 100%;
  448. cursor: pointer;
  449. img {
  450. width: 100%;
  451. }
  452. }
  453. }
  454. // --------------------
  455. .pinBottom-container {
  456. .iconTxt {
  457. font-size: 12px;
  458. color: #fff;
  459. position: absolute;
  460. bottom: -18px;
  461. left: 50%;
  462. transform: translateX(-50%);
  463. width: 100%;
  464. text-align: center;
  465. @media screen and (min-width: 1000px) and (max-width: 1700px) {
  466. width: 200%;
  467. }
  468. @media screen and (min-width: 1700px) {
  469. font-size: 16px;
  470. }
  471. // &::before {
  472. // content: "";
  473. // position: absolute;
  474. // right: -4px;
  475. // bottom: 37px;
  476. // width: 9px;
  477. // height: 7px;
  478. // background-image: url("../../assets/img/dian.png");
  479. // background-size: 100% 100%;
  480. // }
  481. }
  482. .iconTxtAc {
  483. color: #0a93cd;
  484. }
  485. // .active{
  486. // .iconTxt{
  487. // color: #13709e;
  488. // }
  489. // }
  490. #gui-modes-dollhouse.active {
  491. .iconTxt {
  492. color: #0a93cd;
  493. }
  494. }
  495. #gui-modes-floorplan.active {
  496. .iconTxt {
  497. color: #0a93cd;
  498. }
  499. }
  500. .hotListBox {
  501. cursor: pointer;
  502. float: left;
  503. width: 60px;
  504. height: 44px;
  505. position: relative;
  506. z-index: 100;
  507. @media screen and (min-width: 1000px) and (max-width: 1700px) {
  508. height: auto;
  509. width: 250px;
  510. }
  511. @media screen and (min-width: 1700px) {
  512. height: auto;
  513. width: 300px;
  514. }
  515. .hotListSon {
  516. text-align: center;
  517. &>img {
  518. // width: 44px !important;
  519. // height: 44px !important;
  520. // @media screen and (min-width: 1000px) and (max-width: 2000px) {
  521. // width: 60px !important;
  522. // height: 60px !important;
  523. // }
  524. // @media screen and (min-width: 2000px) {
  525. // width: 80px !important;
  526. // height: 80px !important;
  527. // }
  528. }
  529. }
  530. }
  531. .viewContainer {
  532. padding: 10px 10px 34px 10px;
  533. background-color: #171c1f;
  534. border-radius: 0;
  535. width: 100vw;
  536. max-width: 500px;
  537. justify-content: center;
  538. display: flex;
  539. position: relative;
  540. @media screen and (min-width:1000px) {
  541. background-color: #ebebeb00;
  542. max-width: none;
  543. }
  544. .viewXian {
  545. padding: 10px 10px 46px 10px;
  546. position: absolute;
  547. width: 100%;
  548. max-width: 500px;
  549. height: 100%;
  550. left: 0;
  551. top: 0;
  552. @media screen and (min-width:1000px) {
  553. display: flex;
  554. justify-content: center;
  555. max-width: none;
  556. padding: 0px 10px 46px 10px;
  557. margin-top: -5px;
  558. }
  559. @media screen and (min-width:2000px) {
  560. display: flex;
  561. justify-content: center;
  562. max-width: none;
  563. padding: 0px 10px 46px 10px;
  564. margin-top: -10px;
  565. }
  566. &>img {
  567. width: 100%;
  568. height: 100%;
  569. object-fit: contain;
  570. @media screen and (min-width:1000px) {
  571. width: 80%;
  572. object-fit: inherit;
  573. }
  574. }
  575. .viewShowIcon {
  576. cursor: pointer;
  577. position: absolute;
  578. right: 7px;
  579. top: 4px;
  580. @media screen and (min-width: 1000px) {
  581. position: static;
  582. right: none;
  583. top: none;
  584. margin-top: 4px;
  585. }
  586. &>img {
  587. width: 30px;
  588. @media screen and (min-width: 1000px) and (max-width: 2000px) {
  589. width: 40px;
  590. z-index: 9999;
  591. position: absolute;
  592. z-index: 9999;
  593. position: absolute;
  594. }
  595. @media screen and (min-width: 2000px) {
  596. width: 52px;
  597. }
  598. }
  599. }
  600. }
  601. }
  602. // 兼容小手机
  603. @media screen and (max-width: 370px) {
  604. .viewContainer {
  605. padding: 10px 0 34px 0;
  606. .viewXian {
  607. padding: 10px 0px 46px 0px;
  608. .viewShowIcon {
  609. z-index: 999;
  610. position: absolute;
  611. right: 0px;
  612. top: 4px;
  613. &>img {
  614. width: 30px;
  615. }
  616. }
  617. }
  618. }
  619. }
  620. .backBtn {
  621. cursor: pointer;
  622. position: fixed;
  623. z-index: 99;
  624. top: 36px;
  625. left: 10px;
  626. opacity: 1;
  627. pointer-events: auto;
  628. display: flex;
  629. align-items: center;
  630. img {
  631. width: 70px;
  632. height: 70px;
  633. }
  634. span {
  635. color: #FFFAE9;
  636. font-family: 'Source Han Serif CN-Bold';
  637. font-size: 2.5em;
  638. text-shadow: 0px 0px 30px #9F7B46;
  639. -webkit-background-clip: text;
  640. // -webkit-text-fill-color: transparent;
  641. }
  642. }
  643. .myViewShowBox {
  644. cursor: pointer;
  645. position: fixed;
  646. z-index: 99;
  647. bottom: 36px;
  648. left: 10px;
  649. opacity: 0;
  650. pointer-events: none;
  651. transition: all 0.5s;
  652. &>img {
  653. width: 30px;
  654. @media screen and (min-width: 1000px) and (max-width: 2000px) {
  655. width: 40px;
  656. }
  657. @media screen and (min-width: 2000px) {
  658. width: 50px;
  659. }
  660. }
  661. }
  662. .myViewShowBoxAc {
  663. opacity: 1;
  664. pointer-events: auto;
  665. }
  666. .viewShowAc {
  667. transform: translateX(-100vw);
  668. @media screen and (min-width:1000px) {
  669. transform: translateX(-100vw);
  670. }
  671. }
  672. // 音乐
  673. .myMusicBox {
  674. cursor: pointer;
  675. position: fixed;
  676. z-index: 99;
  677. right: 10px;
  678. top: 320px;
  679. width: 40px;
  680. @media screen and (min-width: 1000px) and(max-width: 2000px) {
  681. width: 60px;
  682. }
  683. @media screen and (min-width: 2000px) {
  684. width: 80px;
  685. }
  686. &>div {
  687. width: 40px;
  688. @media screen and (min-width: 1000px) and(max-width: 2000px) {
  689. width: 60px;
  690. }
  691. @media screen and (min-width: 2000px) {
  692. width: 80px;
  693. }
  694. &>img {
  695. width: 40px;
  696. @media screen and (min-width: 1000px) and(max-width: 2000px) {
  697. width: 60px;
  698. }
  699. @media screen and (min-width: 2000px) {
  700. width: 80px;
  701. }
  702. }
  703. }
  704. }
  705. .smMapBox {
  706. position: fixed;
  707. z-index: 99;
  708. top: 180px;
  709. right: 78px;
  710. width: 140px;
  711. height: 16px;
  712. transition: all 0.3s;
  713. transform: rotate(90deg);
  714. // @media screen and (min-width: 1000px) {
  715. // right: 98px;
  716. // }
  717. .smMapBoxSon {
  718. border-radius: 0 0 4px 4px;
  719. height: 16px;
  720. background-color: rgba(0, 0, 0, 0.3);
  721. width: 40px;
  722. margin: 0 auto;
  723. text-align: center;
  724. &>img {
  725. position: relative;
  726. top: -5px;
  727. width: 20px;
  728. @media screen and (max-width: 1000px) {
  729. top: -10px;
  730. }
  731. }
  732. }
  733. }
  734. .smMapBoxHide {
  735. right: -61px;
  736. transform: rotate(-90deg);
  737. .smMapBoxSon {
  738. border-radius: 4px 4px 0px 0px;
  739. }
  740. }
  741. }
  742. </style>