fanmainAnimate.vue 22 KB

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