fanmainAnimate.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818
  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; bottom: -3.7%; 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: 45.7%; 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. if (configUrl.group != "lh") {
  485. document.getElementById("box1").style.animationPlayState = "running";
  486. document.getElementById("box1").style.WebkitAnimationPlayState =
  487. "running";
  488. document.getElementById("box2").style.animationPlayState = "paused";
  489. document.getElementById("box2").style.WebkitAnimationPlayState =
  490. "paused";
  491. }
  492. document.getElementById("box1-s").style.animationPlayState = "running";
  493. document.getElementById("box1-s").style.WebkitAnimationPlayState =
  494. "running";
  495. document.getElementById("box2-s").style.animationPlayState = "paused";
  496. document.getElementById("box2-s").style.WebkitAnimationPlayState =
  497. "paused";
  498. } else if (this.nowfengji == "1") {
  499. if (configUrl.group != "lh") {
  500. document.getElementById("box2").style.animationPlayState = "running";
  501. document.getElementById("box2").style.WebkitAnimationPlayState =
  502. "running";
  503. document.getElementById("box1").style.animationPlayState = "paused";
  504. document.getElementById("box1").style.WebkitAnimationPlayState =
  505. "paused";
  506. }
  507. document.getElementById("box2-s").style.animationPlayState = "running";
  508. document.getElementById("box2-s").style.WebkitAnimationPlayState =
  509. "running";
  510. document.getElementById("box1-s").style.animationPlayState = "paused";
  511. document.getElementById("box1-s").style.WebkitAnimationPlayState =
  512. "paused";
  513. } else {
  514. document.getElementById("box2").style.animationPlayState = "paused";
  515. document.getElementById("box2").style.WebkitAnimationPlayState =
  516. "paused";
  517. document.getElementById("box2-s").style.animationPlayState = "paused";
  518. document.getElementById("box2-s").style.WebkitAnimationPlayState =
  519. "paused";
  520. document.getElementById("box1").style.animationPlayState = "paused";
  521. document.getElementById("box1").style.WebkitAnimationPlayState =
  522. "paused";
  523. document.getElementById("box1-s").style.animationPlayState = "paused";
  524. document.getElementById("box1-s").style.WebkitAnimationPlayState =
  525. "paused";
  526. }
  527. },
  528. },
  529. computed: {},
  530. mounted() {},
  531. destroyed() {},
  532. };
  533. </script>
  534. <style scoped>
  535. div.pageback {
  536. padding-top: 10px;
  537. margin-top: 12px;
  538. width: 100vw;
  539. height: calc(60% - 50px);
  540. min-height: 350px;
  541. background-image: url(/static/mainfan/page-back.png);
  542. background-size: 100% 100%;
  543. }
  544. div.ventilate {
  545. margin-top: 12px;
  546. width: calc(100vw - 20px);
  547. height: calc(60% - 50px);
  548. min-height: 330px;
  549. background-image: url(/static/mainfan/main_ventilate_new.png);
  550. background-size: 100% 100%;
  551. perspective: 800px;
  552. }
  553. </style>
  554. <style scoped>
  555. @media screen and (max-width: 4096px) {
  556. .box {
  557. position: absolute;
  558. transform: perspective(1000px) rotateY(-23deg);
  559. width: 1%;
  560. height: 20%;
  561. transform-style: preserve-3d;
  562. }
  563. .box-s {
  564. position: absolute;
  565. transform: perspective(1000px) rotateY(-23deg);
  566. width: 1%;
  567. height: 20%;
  568. transform-style: preserve-3d;
  569. }
  570. }
  571. @media screen and (min-width: 4096px) {
  572. .box {
  573. position: absolute;
  574. transform: perspective(1000px) rotateY(21deg);
  575. width: 1%;
  576. height: 20%;
  577. transform-style: preserve-3d;
  578. }
  579. .box-s {
  580. position: absolute;
  581. transform: perspective(1000px) rotateY(21deg);
  582. width: 1%;
  583. height: 20%;
  584. transform-style: preserve-3d;
  585. }
  586. }
  587. .doordivb {
  588. position: absolute;
  589. width: 100%;
  590. height: 100%;
  591. /* background-image: url(/static/aminfandoor-new-1.png); */
  592. background-size: 100% 100%;
  593. }
  594. .door1 {
  595. position: absolute;
  596. transform: scaleX(0.1) scaleY(0.5);
  597. width: 100%;
  598. height: 100%;
  599. top: -2px;
  600. left: 0px;
  601. transition: all 2s ease;
  602. transform-origin: 100% 100%;
  603. background-image: url(/static/mainfan/fun-door-new-1.png);
  604. background-size: 100% 100%;
  605. }
  606. .door2 {
  607. position: absolute;
  608. transform: scaleX(1) scaleY(1);
  609. width: 100%;
  610. height: 100%;
  611. top: -2px;
  612. left: 0px;
  613. transition: all 2s ease;
  614. transform-origin: 100% 100%;
  615. background-image: url(/static/mainfan/fun-door-new-1.png);
  616. background-size: 100% 100%;
  617. }
  618. .fundoor {
  619. position: absolute;
  620. width: 100%;
  621. height: 100%;
  622. background-image: url(/static/mainfan/fun-door-new-1.png);
  623. background-size: 100% 100%;
  624. }
  625. .fundoor1 {
  626. position: absolute;
  627. transform: scaleX(0);
  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. .fundoor2 {
  637. position: absolute;
  638. transform: scaleX(1);
  639. width: 100%;
  640. height: 100%;
  641. top: 1px;
  642. left: 1px;
  643. transition: all 2s ease;
  644. background-image: url(/static/mainfan/fun-door-new-2.png);
  645. background-size: 100% 100%;
  646. }
  647. .topwindow {
  648. position: absolute;
  649. width: 100%;
  650. height: 100%;
  651. /* background-image: url(../././assets/img/topwindow-1.png); */
  652. background-size: 100% 100%;
  653. }
  654. .topwindow1 {
  655. position: absolute;
  656. transform: scaleY(0.05);
  657. width: 100%;
  658. height: 100%;
  659. top: 0px;
  660. left: 0px;
  661. transition: all 2s ease;
  662. transform-origin: 100% 0%;
  663. background-image: url(/static/mainfan/topwindow-new-2.png);
  664. background-size: 100% 100%;
  665. }
  666. .topwindow2 {
  667. position: absolute;
  668. transform: scaleY(1);
  669. width: 100%;
  670. height: 100%;
  671. top: 0px;
  672. left: 0px;
  673. transition: all 2s ease;
  674. transform-origin: 100% 0%;
  675. background-image: url(/static/mainfan/topwindow-new-2.png);
  676. background-size: 100% 100%;
  677. }
  678. .box::before,
  679. .box-s::before {
  680. content: "";
  681. position: absolute;
  682. bottom: -20px;
  683. left: 0;
  684. width: 50%;
  685. height: 10px;
  686. background: #000;
  687. filter: blur(10px);
  688. opacity: 0.6;
  689. transform: rotateX(90deg);
  690. }
  691. .box .zz {
  692. position: absolute;
  693. top: 0;
  694. left: 0;
  695. width: 100%;
  696. height: 100%;
  697. transform-style: preserve-3d;
  698. animation: animate 5s linear infinite;
  699. animation-play-state: paused;
  700. -webkit-animation-play-state: paused;
  701. }
  702. .box .fz {
  703. position: absolute;
  704. top: 0;
  705. left: 0;
  706. width: 100%;
  707. height: 100%;
  708. transform-style: preserve-3d;
  709. animation: animateFz 5s linear infinite;
  710. animation-play-state: paused;
  711. -webkit-animation-play-state: paused;
  712. }
  713. .box-s .zz1 {
  714. position: absolute;
  715. top: 0;
  716. left: 0;
  717. width: 100%;
  718. height: 100%;
  719. transform-style: preserve-3d;
  720. animation: animate2 5s linear infinite;
  721. animation-play-state: paused;
  722. -webkit-animation-play-state: paused;
  723. }
  724. .box-s .fz1 {
  725. position: absolute;
  726. top: 0;
  727. left: 0;
  728. width: 100%;
  729. height: 100%;
  730. transform-style: preserve-3d;
  731. animation: animateFz1 5s linear infinite;
  732. animation-play-state: paused;
  733. -webkit-animation-play-state: paused;
  734. }
  735. .box div span,
  736. .box-s div span {
  737. position: absolute;
  738. top: 0;
  739. left: 0;
  740. display: block;
  741. width: 100%;
  742. height: 100%;
  743. background: linear-gradient(0deg, #f1f1f1, #999, #f1f1f1);
  744. border-radius: 15px;
  745. }
  746. .box div span:nth-child(1),
  747. .box-s div span:nth-child(1) {
  748. transform: rotateX(0deg);
  749. }
  750. .box div span:nth-child(2),
  751. .box-s div span:nth-child(2) {
  752. transform: rotateX(45deg);
  753. }
  754. .box div span:nth-child(3),
  755. .box-s div span:nth-child(3) {
  756. transform: rotateX(-45deg);
  757. }
  758. .box div span:nth-child(4),
  759. .box-s div span:nth-child(4) {
  760. transform: rotateX(90deg);
  761. }
  762. div.box-right {
  763. position: absolute;
  764. width: 100%;
  765. height: 100%;
  766. background-image: url(/static/mainfan/fengji-right2.png);
  767. background-size: 100% 100%;
  768. }
  769. div.box-left {
  770. position: absolute;
  771. top: 0;
  772. left: 0;
  773. width: 100%;
  774. height: 100%;
  775. background-image: url(/static/mainfan/fengji-left.png);
  776. background-size: 100% 100%;
  777. }
  778. @keyframes animate {
  779. 0% {
  780. transform: perspective(1000px) rotateX(0deg);
  781. }
  782. 100% {
  783. transform: perspective(1000px) rotateX(360deg);
  784. }
  785. }
  786. @keyframes animateFz {
  787. 0% {
  788. transform: perspective(1000px) rotateX(360deg);
  789. }
  790. 100% {
  791. transform: perspective(1000px) rotateX(0deg);
  792. }
  793. }
  794. @keyframes animate2 {
  795. 0% {
  796. transform: perspective(1000px) rotateX(360deg);
  797. }
  798. 100% {
  799. transform: perspective(1000px) rotateX(0deg);
  800. }
  801. }
  802. @keyframes animateFz1 {
  803. 0% {
  804. transform: perspective(1000px) rotateX(0deg);
  805. }
  806. 100% {
  807. transform: perspective(1000px) rotateX(360deg);
  808. }
  809. }
  810. </style>