fanmainAnimate.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806
  1. <template>
  2. <!-- 新的主通机动画 -->
  3. <view style="width: 100%; height: 100%">
  4. <div class="pageback">
  5. <!-- 动画展示 -->
  6. <div style="z-index: 33; height: 100%">
  7. <div class="ventilate" id="topPic">
  8. <!-- 进风箭头 -->
  9. <div
  10. :class="[
  11. nowfengji == '1'
  12. ? door1 == 1
  13. ? topdoor1 == 1
  14. ? reverseVal + 'arrowpic1-10'
  15. : reverseVal + 'arrowpic1'
  16. : topdoor1 == 1
  17. ? reverseVal + 'arrowpic1-3'
  18. : ''
  19. : nowfengji == '2'
  20. ? door2 == 1
  21. ? topdoor2 == 1
  22. ? reverseVal + 'arrowpic1-11'
  23. : reverseVal + 'arrowpic1-2'
  24. : topdoor2 == 1
  25. ? reverseVal + 'arrowpic1-4'
  26. : ''
  27. : '',
  28. ]"
  29. id="arrowpic1"
  30. ></div>
  31. <div
  32. :class="[
  33. nowfengji == '1'
  34. ? door1 == 1
  35. ? topdoor1 == 1
  36. ? reverseVal + 'arrowpic2-10'
  37. : reverseVal + 'arrowpic2'
  38. : topdoor1 == 1
  39. ? reverseVal + 'arrowpic2-3'
  40. : ''
  41. : nowfengji == '2'
  42. ? door2 == 1
  43. ? topdoor2 == 1
  44. ? reverseVal + 'arrowpic2-11'
  45. : reverseVal + 'arrowpic2-2'
  46. : topdoor2 == 1
  47. ? reverseVal + 'arrowpic2-4'
  48. : ''
  49. : '',
  50. ]"
  51. id="arrowpic2"
  52. ></div>
  53. <div
  54. :class="[
  55. nowfengji == '1'
  56. ? door1 == 1
  57. ? topdoor1 == 1
  58. ? reverseVal + 'arrowpic3-10'
  59. : reverseVal + 'arrowpic3'
  60. : topdoor1 == 1
  61. ? reverseVal + 'arrowpic3-3'
  62. : ''
  63. : nowfengji == '2'
  64. ? door2 == 1
  65. ? topdoor2 == 1
  66. ? reverseVal + 'arrowpic3-11'
  67. : reverseVal + 'arrowpic3-2'
  68. : topdoor2 == 1
  69. ? reverseVal + 'arrowpic3-4'
  70. : ''
  71. : '',
  72. ]"
  73. id="arrowpic3"
  74. ></div>
  75. <div
  76. :class="[
  77. nowfengji == '1'
  78. ? door1 == 1
  79. ? topdoor1 == 1
  80. ? reverseVal + 'arrowpic4-10'
  81. : reverseVal + 'arrowpic4'
  82. : topdoor1 == 1
  83. ? reverseVal + 'arrowpic4-3'
  84. : ''
  85. : nowfengji == '2'
  86. ? door2 == 1
  87. ? topdoor2 == 1
  88. ? reverseVal + 'arrowpic4-11'
  89. : reverseVal + 'arrowpic4-2'
  90. : topdoor2 == 1
  91. ? reverseVal + 'arrowpic4-4'
  92. : ''
  93. : '',
  94. ]"
  95. id="arrowpic4"
  96. ></div>
  97. <div
  98. :class="[
  99. nowfengji == '1'
  100. ? door1 == 1
  101. ? topdoor1 == 1
  102. ? reverseVal + 'arrowpic5-10'
  103. : reverseVal + 'arrowpic5'
  104. : topdoor1 == 1
  105. ? reverseVal + 'arrowpic5-3'
  106. : ''
  107. : nowfengji == '2'
  108. ? door2 == 1
  109. ? topdoor2 == 1
  110. ? reverseVal + 'arrowpic5-11'
  111. : reverseVal + 'arrowpic5-2'
  112. : topdoor2 == 1
  113. ? reverseVal + 'arrowpic5-4'
  114. : ''
  115. : '',
  116. ]"
  117. id="arrowpic5"
  118. ></div>
  119. <div
  120. :class="[
  121. nowfengji == '1'
  122. ? door1 == 1
  123. ? topdoor1 == 1
  124. ? reverseVal + 'arrowpic6-10'
  125. : reverseVal + 'arrowpic6'
  126. : topdoor1 == 1
  127. ? reverseVal + 'arrowpic6-3'
  128. : ''
  129. : nowfengji == '2'
  130. ? door2 == 1
  131. ? topdoor2 == 1
  132. ? reverseVal + 'arrowpic6-11'
  133. : reverseVal + 'arrowpic6-2'
  134. : topdoor2 == 1
  135. ? reverseVal + 'arrowpic6-4'
  136. : ''
  137. : '',
  138. ]"
  139. id="arrowpic6"
  140. ></div>
  141. <div
  142. :class="[
  143. nowfengji == '1'
  144. ? door1 == 1
  145. ? topdoor1 == 1
  146. ? reverseVal + 'arrowpic7-10'
  147. : reverseVal + 'arrowpic7'
  148. : topdoor1 == 1
  149. ? reverseVal + 'arrowpic7-3'
  150. : ''
  151. : nowfengji == '2'
  152. ? door2 == 1
  153. ? topdoor2 == 1
  154. ? reverseVal + 'arrowpic7-11'
  155. : reverseVal + 'arrowpic7-2'
  156. : topdoor2 == 1
  157. ? reverseVal + 'arrowpic7-4'
  158. : ''
  159. : '',
  160. ]"
  161. id="arrowpic7"
  162. ></div>
  163. <div
  164. :class="[
  165. nowfengji == '1'
  166. ? door1 == 1
  167. ? topdoor1 == 1
  168. ? reverseVal + 'arrowpic8-10'
  169. : reverseVal + 'arrowpic8'
  170. : topdoor1 == 1
  171. ? reverseVal + 'arrowpic8-3'
  172. : ''
  173. : nowfengji == '2'
  174. ? door2 == 1
  175. ? topdoor2 == 1
  176. ? reverseVal + 'arrowpic8-11'
  177. : reverseVal + 'arrowpic8-2'
  178. : topdoor2 == 1
  179. ? reverseVal + 'arrowpic8-4'
  180. : ''
  181. : '',
  182. ]"
  183. id="arrowpic8"
  184. ></div>
  185. <div
  186. :class="[
  187. nowfengji == '1'
  188. ? door1 == 1
  189. ? topdoor1 == 1
  190. ? reverseVal + 'arrowpic9-10'
  191. : reverseVal + 'arrowpic9'
  192. : topdoor1 == 1
  193. ? reverseVal + 'arrowpic9-3'
  194. : ''
  195. : nowfengji == '2'
  196. ? door2 == 1
  197. ? topdoor2 == 1
  198. ? reverseVal + 'arrowpic9-11'
  199. : reverseVal + 'arrowpic9-2'
  200. : topdoor2 == 1
  201. ? reverseVal + 'arrowpic9-4'
  202. : ''
  203. : '',
  204. ]"
  205. id="arrowpic9"
  206. ></div>
  207. <div
  208. :class="[
  209. nowfengji == '1'
  210. ? door1 == 1
  211. ? topdoor1 == 1
  212. ? reverseVal + 'arrowpic10-10'
  213. : reverseVal + 'arrowpic10'
  214. : topdoor1 == 1
  215. ? reverseVal + 'arrowpic10-3'
  216. : ''
  217. : nowfengji == '2'
  218. ? door2 == 1
  219. ? topdoor2 == 1
  220. ? reverseVal + 'arrowpic10-11'
  221. : reverseVal + 'arrowpic10-2'
  222. : topdoor2 == 1
  223. ? reverseVal + 'arrowpic10-4'
  224. : ''
  225. : '',
  226. ]"
  227. id="arrowpic10"
  228. ></div>
  229. <!-- 风扇动画展示 -->
  230. <!-- 巷道门阀 -->
  231. <div
  232. id="topdoor1"
  233. class="doordivb"
  234. style="width: 1%; height: 40%; top: 3%; left: 71%"
  235. >
  236. <div id="topdoor" :class="[door1 == 1 ? 'door1' : 'door2']"></div>
  237. </div>
  238. <div
  239. id="bottomdoor1"
  240. class="doordivb"
  241. style="width: 1%; height: 46%; top: 54.3%; left: 72%"
  242. >
  243. <div
  244. id="bottomdoor"
  245. :class="[door2 == 1 ? 'door1' : 'door2']"
  246. ></div>
  247. </div>
  248. <!-- 天窗 -->
  249. <div
  250. id="topwindow1"
  251. class="topwindow"
  252. style="width: 3%; height: 19%; top: 2%; left: 66.9%; z-index: 10"
  253. >
  254. <div
  255. id="topwindow"
  256. :class="[
  257. nowfengji == '1' && topdoor1 == 1 ? 'topwindow1' : 'topwindow2',
  258. ]"
  259. ></div>
  260. </div>
  261. <div
  262. id="topwindow2"
  263. class="topwindow"
  264. style="width: 3%; height: 19%; top: 53%; left: 67%; z-index: 10"
  265. >
  266. <div
  267. id="topwindow"
  268. :class="[
  269. nowfengji == '2' && topdoor2 ? 'topwindow1' : 'topwindow2',
  270. ]"
  271. ></div>
  272. </div>
  273. <!-- <div class="box-left" style="width:5.5%;height:14%;top: 15%;left: 20%;"></div> -->
  274. <div
  275. class="box"
  276. style="top: 12.2%; left: 30.4%"
  277. v-if="groupType != 'lh' && groupType !== 'wlyk'"
  278. >
  279. <div id="box2" :class="reverseVal ? 'fz' : 'zz'">
  280. <span></span>
  281. <span></span>
  282. <span></span>
  283. <span></span>
  284. </div>
  285. <!-- <div class="box-right" style="width:6%;height:14%;top: 15%;left:32%;"> -->
  286. <!-- 风机旁边阀门 -->
  287. </div>
  288. <div
  289. class="box-s"
  290. style="top: 12.2%; left: 34.5%"
  291. :style="
  292. groupType != 'lh' && groupType !== 'wlyk'
  293. ? 'top: 12.2%;left: 34.5%;'
  294. : 'top: 12.2%;left: 32.5%;'
  295. "
  296. >
  297. <div id="box2-s" :class="reverseVal ? 'fz1' : 'zz1'">
  298. <span></span>
  299. <span></span>
  300. <span></span>
  301. <span></span>
  302. </div>
  303. </div>
  304. <!-- <div class="box-left" style="width:5.5%;height:14%;top: 80%;left: 20%;"></div> -->
  305. <div
  306. class="box"
  307. style="bottom: 11.7%; left: 27.8%"
  308. v-if="groupType != 'lh' && groupType !== 'wlyk'"
  309. >
  310. <div id="box1" :class="reverseVal ? 'fz' : 'zz'">
  311. <span></span>
  312. <span></span>
  313. <span></span>
  314. <span></span>
  315. </div>
  316. </div>
  317. <!-- 蝶阀 -->
  318. <div
  319. id="topfundoor1"
  320. class="fundoor"
  321. style="width: 3%; height: 36%; left: 45.9%; z-index: 10; top: 6.6%"
  322. >
  323. <div
  324. id="topfundoor"
  325. :class="[
  326. nowfengji == '1' && fundoor1 == 1 ? 'fundoor1' : 'fundoor2',
  327. ]"
  328. ></div>
  329. </div>
  330. <div
  331. id="bottomfundoor1"
  332. class="fundoor"
  333. style="width: 3%; height: 36%; left: 44%; z-index: 10; top: 57%"
  334. >
  335. <div
  336. id="bottomfundoor"
  337. :class="[
  338. nowfengji == '2' && fundoor2 == 1 ? 'fundoor1' : 'fundoor2',
  339. ]"
  340. ></div>
  341. </div>
  342. <!-- 风机 -->
  343. <!-- <div class="box-right" style="width:6%;height:14%;top: 80%;left:32.5%;"> -->
  344. <div
  345. class="box-s"
  346. style="bottom: 11.7%; left: 32.4%"
  347. :style="
  348. groupType != 'lh' && groupType !== 'wlyk'
  349. ? 'bottom: 11.7%;left:32.4%;'
  350. : 'bottom: 11.7%;left:30.4%;'
  351. "
  352. >
  353. <div id="box1-s" :class="reverseVal ? 'fz1' : 'zz1'">
  354. <span></span>
  355. <span></span>
  356. <span></span>
  357. <span></span>
  358. </div>
  359. </div>
  360. </div>
  361. </div>
  362. <!-- 文字标识 -->
  363. <div
  364. style="
  365. position: absolute;
  366. color: #fff;
  367. top: 20%;
  368. left: 10%;
  369. color: #ff0;
  370. "
  371. >
  372. <span>1号电机</span>
  373. </div>
  374. <div
  375. style="
  376. position: absolute;
  377. color: #fff;
  378. top: 20%;
  379. left: 39%;
  380. color: #ff0;
  381. "
  382. >
  383. <span>2号电机</span>
  384. </div>
  385. <div
  386. style="
  387. position: absolute;
  388. color: #fff;
  389. color: #ff0;
  390. bottom: 57%;
  391. left: 10%;
  392. "
  393. >
  394. <span>1号电机</span>
  395. </div>
  396. <div
  397. style="
  398. position: absolute;
  399. color: #fff;
  400. bottom: 57%;
  401. left: 38%;
  402. color: #ff0;
  403. "
  404. >
  405. <span>2号电机</span>
  406. </div>
  407. <div style="position: absolute; color: #fff; top: 63%; left: 28.4%">
  408. <span v-if="topindex == 2">1#风机</span>
  409. <span v-if="topindex == 1">2#风机</span>
  410. </div>
  411. <div style="position: absolute; color: #fff; bottom: 63%; left: 31.4%">
  412. <span v-if="topindex == 2">2#风机</span>
  413. <span v-if="topindex == 1">1#风机</span>
  414. </div>
  415. <!-- 风筒风速传感器 -->
  416. <div class="imgF1"></div>
  417. <div class="imgF2"></div>
  418. </div>
  419. </view>
  420. </template>
  421. <script>
  422. export default {
  423. components: {},
  424. data: function () {
  425. return {
  426. fengliangUp: "", // 风量上限
  427. fengliangDown: "", // 风量下限
  428. controTypeName: "变频器频率",
  429. // 界面风机动画
  430. // 控制类型 1 变频器频率 2 需风量
  431. controlType: "1",
  432. loading: "", // 数据加载
  433. yMax1: 100,
  434. yMax2: 10,
  435. yMax3: 1000,
  436. topindex: 1,
  437. textColor: "#000",
  438. option1: {},
  439. nowfengji: "",
  440. reverseVal: "",
  441. };
  442. },
  443. props: [
  444. "door1",
  445. "topdoor1",
  446. "fundoor1",
  447. "door2",
  448. "topdoor2",
  449. "fundoor2",
  450. "groupType",
  451. "fanMsStatus",
  452. ],
  453. created() {
  454. // this.myInterval()
  455. },
  456. watch: {
  457. fanMsStatus(val) {
  458. if (val == false) {
  459. this.reverseVal = "reverse-";
  460. } else {
  461. this.reverseVal = "";
  462. }
  463. },
  464. },
  465. // 获取第一页实时数据
  466. beforeMount: function (e) {
  467. var than = this;
  468. },
  469. methods: {
  470. // 顶部风机序号值
  471. setTopIndex(val) {
  472. this.topindex = val;
  473. },
  474. // 根据当前运行分机,设置动画
  475. setQidongfengji(val) {
  476. if (this.nowfengji != val) {
  477. this.nowfengji = val;
  478. this.setFengjiDonghua();
  479. }
  480. },
  481. // 风机动画
  482. setFengjiDonghua() {
  483. if (this.nowfengji == "2") {
  484. document.getElementById("box1").style.animationPlayState = "running";
  485. document.getElementById("box1").style.WebkitAnimationPlayState =
  486. "running";
  487. document.getElementById("box2").style.animationPlayState = "paused";
  488. document.getElementById("box2").style.WebkitAnimationPlayState =
  489. "paused";
  490. } else if (this.nowfengji == "1") {
  491. if (configUrl.group != "lh") {
  492. document.getElementById("box2").style.animationPlayState = "running";
  493. document.getElementById("box2").style.WebkitAnimationPlayState =
  494. "running";
  495. document.getElementById("box1").style.animationPlayState = "paused";
  496. document.getElementById("box1").style.WebkitAnimationPlayState =
  497. "paused";
  498. }
  499. document.getElementById("box2-s").style.animationPlayState = "running";
  500. document.getElementById("box2-s").style.WebkitAnimationPlayState =
  501. "running";
  502. document.getElementById("box1-s").style.animationPlayState = "paused";
  503. document.getElementById("box1-s").style.WebkitAnimationPlayState =
  504. "paused";
  505. } else {
  506. document.getElementById("box2").style.animationPlayState = "paused";
  507. document.getElementById("box2").style.WebkitAnimationPlayState =
  508. "paused";
  509. document.getElementById("box2-s").style.animationPlayState = "paused";
  510. document.getElementById("box2-s").style.WebkitAnimationPlayState =
  511. "paused";
  512. document.getElementById("box1").style.animationPlayState = "paused";
  513. document.getElementById("box1").style.WebkitAnimationPlayState =
  514. "paused";
  515. document.getElementById("box1-s").style.animationPlayState = "paused";
  516. document.getElementById("box1-s").style.WebkitAnimationPlayState =
  517. "paused";
  518. }
  519. },
  520. },
  521. computed: {},
  522. mounted() {},
  523. destroyed() {},
  524. };
  525. </script>
  526. <style scoped>
  527. div.pageback {
  528. height: calc(60% - 50px);
  529. min-height: 350px;
  530. background-image: url(/static/mainfan/page-back.png);
  531. background-size: 100% 100%;
  532. }
  533. div.ventilate {
  534. margin-top: 12px;
  535. width: calc(100vw - 20px);
  536. height: calc(60% - 50px);
  537. min-height: 330px;
  538. background-image: url(/static/mainfan/main_ventilate_new.png);
  539. background-size: 100% 100%;
  540. perspective: 800px;
  541. }
  542. </style>
  543. <style scoped>
  544. @media screen and (max-width: 4096px) {
  545. .box {
  546. position: absolute;
  547. transform: perspective(1000px) rotateY(-23deg);
  548. width: 1%;
  549. height: 20%;
  550. transform-style: preserve-3d;
  551. }
  552. .box-s {
  553. position: absolute;
  554. transform: perspective(1000px) rotateY(-23deg);
  555. width: 1%;
  556. height: 20%;
  557. transform-style: preserve-3d;
  558. }
  559. }
  560. @media screen and (min-width: 4096px) {
  561. .box {
  562. position: absolute;
  563. transform: perspective(1000px) rotateY(21deg);
  564. width: 1%;
  565. height: 20%;
  566. transform-style: preserve-3d;
  567. }
  568. .box-s {
  569. position: absolute;
  570. transform: perspective(1000px) rotateY(21deg);
  571. width: 1%;
  572. height: 20%;
  573. transform-style: preserve-3d;
  574. }
  575. }
  576. .doordivb {
  577. position: absolute;
  578. width: 100%;
  579. height: 100%;
  580. /* background-image: url(/static/aminfandoor-new-1.png); */
  581. background-size: 100% 100%;
  582. }
  583. .door1 {
  584. position: absolute;
  585. transform: scaleX(0.1) scaleY(0.5);
  586. width: 100%;
  587. height: 100%;
  588. top: -2px;
  589. left: 0px;
  590. transition: all 2s ease;
  591. transform-origin: 100% 100%;
  592. background-image: url(/static/mainfan/fun-door-new-1.png);
  593. background-size: 100% 100%;
  594. }
  595. .door2 {
  596. position: absolute;
  597. transform: scaleX(1) scaleY(1);
  598. width: 100%;
  599. height: 100%;
  600. top: -2px;
  601. left: 0px;
  602. transition: all 2s ease;
  603. transform-origin: 100% 100%;
  604. background-image: url(/static/mainfan/fun-door-new-1.png);
  605. background-size: 100% 100%;
  606. }
  607. .fundoor {
  608. position: absolute;
  609. width: 100%;
  610. height: 100%;
  611. background-image: url(/static/mainfan/fun-door-new-1.png);
  612. background-size: 100% 100%;
  613. }
  614. .fundoor1 {
  615. position: absolute;
  616. transform: scaleX(0);
  617. width: 100%;
  618. height: 100%;
  619. top: 1px;
  620. left: 1px;
  621. transition: all 2s ease;
  622. background-image: url(/static/mainfan/fun-door-new-2.png);
  623. background-size: 100% 100%;
  624. }
  625. .fundoor2 {
  626. position: absolute;
  627. transform: scaleX(1);
  628. width: 100%;
  629. height: 100%;
  630. top: 1px;
  631. left: 1px;
  632. transition: all 2s ease;
  633. background-image: url(/static/mainfan/fun-door-new-2.png);
  634. background-size: 100% 100%;
  635. }
  636. .topwindow {
  637. position: absolute;
  638. width: 100%;
  639. height: 100%;
  640. /* background-image: url(../././assets/img/topwindow-1.png); */
  641. background-size: 100% 100%;
  642. }
  643. .topwindow1 {
  644. position: absolute;
  645. transform: scaleY(0.05);
  646. width: 100%;
  647. height: 100%;
  648. top: 0px;
  649. left: 0px;
  650. transition: all 2s ease;
  651. transform-origin: 100% 0%;
  652. background-image: url(/static/mainfan/topwindow-new-2.png);
  653. background-size: 100% 100%;
  654. }
  655. .topwindow2 {
  656. position: absolute;
  657. transform: scaleY(1);
  658. width: 100%;
  659. height: 100%;
  660. top: 0px;
  661. left: 0px;
  662. transition: all 2s ease;
  663. transform-origin: 100% 0%;
  664. background-image: url(/static/mainfan/topwindow-new-2.png);
  665. background-size: 100% 100%;
  666. }
  667. .box::before,
  668. .box-s::before {
  669. content: "";
  670. position: absolute;
  671. bottom: -20px;
  672. left: 0;
  673. width: 50%;
  674. height: 10px;
  675. background: #000;
  676. filter: blur(10px);
  677. opacity: 0.6;
  678. transform: rotateX(90deg);
  679. }
  680. .box .zz {
  681. position: absolute;
  682. top: 0;
  683. left: 0;
  684. width: 100%;
  685. height: 100%;
  686. transform-style: preserve-3d;
  687. animation: animate 5s linear infinite;
  688. animation-play-state: paused;
  689. -webkit-animation-play-state: paused;
  690. }
  691. .box .fz {
  692. position: absolute;
  693. top: 0;
  694. left: 0;
  695. width: 100%;
  696. height: 100%;
  697. transform-style: preserve-3d;
  698. animation: animateFz 5s linear infinite;
  699. animation-play-state: paused;
  700. -webkit-animation-play-state: paused;
  701. }
  702. .box-s .zz1 {
  703. position: absolute;
  704. top: 0;
  705. left: 0;
  706. width: 100%;
  707. height: 100%;
  708. transform-style: preserve-3d;
  709. animation: animate2 5s linear infinite;
  710. animation-play-state: paused;
  711. -webkit-animation-play-state: paused;
  712. }
  713. .box-s .fz1 {
  714. position: absolute;
  715. top: 0;
  716. left: 0;
  717. width: 100%;
  718. height: 100%;
  719. transform-style: preserve-3d;
  720. animation: animateFz1 5s linear infinite;
  721. animation-play-state: paused;
  722. -webkit-animation-play-state: paused;
  723. }
  724. .box div span,
  725. .box-s div span {
  726. position: absolute;
  727. top: 0;
  728. left: 0;
  729. display: block;
  730. width: 100%;
  731. height: 100%;
  732. background: linear-gradient(0deg, #f1f1f1, #999, #f1f1f1);
  733. border-radius: 15px;
  734. }
  735. .box div span:nth-child(1),
  736. .box-s div span:nth-child(1) {
  737. transform: rotateX(0deg);
  738. }
  739. .box div span:nth-child(2),
  740. .box-s div span:nth-child(2) {
  741. transform: rotateX(45deg);
  742. }
  743. .box div span:nth-child(3),
  744. .box-s div span:nth-child(3) {
  745. transform: rotateX(-45deg);
  746. }
  747. .box div span:nth-child(4),
  748. .box-s div span:nth-child(4) {
  749. transform: rotateX(90deg);
  750. }
  751. div.box-right {
  752. position: absolute;
  753. width: 100%;
  754. height: 100%;
  755. background-image: url(/static/mainfan/fengji-right2.png);
  756. background-size: 100% 100%;
  757. }
  758. div.box-left {
  759. position: absolute;
  760. top: 0;
  761. left: 0;
  762. width: 100%;
  763. height: 100%;
  764. background-image: url(/static/mainfan/fengji-left.png);
  765. background-size: 100% 100%;
  766. }
  767. @keyframes animate {
  768. 0% {
  769. transform: perspective(1000px) rotateX(0deg);
  770. }
  771. 100% {
  772. transform: perspective(1000px) rotateX(360deg);
  773. }
  774. }
  775. @keyframes animateFz {
  776. 0% {
  777. transform: perspective(1000px) rotateX(360deg);
  778. }
  779. 100% {
  780. transform: perspective(1000px) rotateX(0deg);
  781. }
  782. }
  783. @keyframes animate2 {
  784. 0% {
  785. transform: perspective(1000px) rotateX(360deg);
  786. }
  787. 100% {
  788. transform: perspective(1000px) rotateX(0deg);
  789. }
  790. }
  791. @keyframes animateFz1 {
  792. 0% {
  793. transform: perspective(1000px) rotateX(0deg);
  794. }
  795. 100% {
  796. transform: perspective(1000px) rotateX(360deg);
  797. }
  798. }
  799. </style>