Index.cshtml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. @*
  2. *@
  3. @model Ropin.Environmentally.WebScada.DeviceValueModel;
  4. @{
  5. }
  6. <body>
  7. <div class="breadcrumb" id="div-canvas" style="position:relative; top:0px;left:0px; background-color:White;">
  8. <div id="app">
  9. @{
  10. if (Model.Id !=null && Model.Id =="1")
  11. {
  12. <img style="border-width:0px;width:1024px;height:768px; z-index:0; position:absolute;left:0px;top:0px;"
  13. src="https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/wwwroot/pic/汽轮机厂S.jpg"
  14. id="ccc" />
  15. //<div v-if="device.value19 === '1'" style="z-index:1; position:absolute;left:0px;top:0px;">
  16. // <img src="https://shyp.yunzutai.com:22744/Uploads/Files/2021/12/10/115e6854e0ac4449ba453714d6d4a2a4.svg" alt="Smiley face" width="64" height="64">
  17. // </div>
  18. // <div v-if="device.value19 === '0'" style="z-index:2; position:absolute;left:0px;top:0px;">
  19. // <img src="./pic/hui.svg" alt="Smiley face" width="64" height="64">
  20. // </div>
  21. <div style="z-index:1; position:absolute;left:0px;top:0px;">
  22. <img v-if="device.value19 === '1'" src="https://shyp.yunzutai.com:22744/Uploads/Files/2021/12/10/115e6854e0ac4449ba453714d6d4a2a4.svg" alt="Smiley face" width="64" height="64">
  23. <img v-else src="./pic/hui.svg" alt="Smiley face" width="64" height="64">
  24. </div>
  25. <div style="z-index:1; position:absolute;left:70px;top:0px;">
  26. <img v-if="device.value17 === '1'" src="https://shyp.yunzutai.com:22744/Uploads/Files/2021/12/10/3e6ba57ec6ef4c299524094e2e26e4f3.svg" alt="Smiley face" width="64" height="64">
  27. <img v-else src="./pic/hui.svg" alt="Smiley face" width="64" height="64">
  28. </div>
  29. <input name="RichTextBox110" type="text" id="RichTextBox110" v-model="device.value" style="width:160px;height: 80px;z-index:129;position:absolute;top: 820px;left:761px;font-size:32px; " />
  30. <span id="Lable123" style="width:700px;height: 63px;z-index:126;position:absolute;top: 840px;left:0px;font-size:32px;">{{device.Name}}</span>
  31. <input name="RichTextBox111" type="text" id="RichTextBox111" v-model="device.value10" style="width:160px;height: 80px;z-index:129;position:absolute;top: 920px;left:761px;font-size:32px;" />
  32. <span id="Lable124" style="width:700px;height: 63px;z-index:126;position:absolute;top: 930px;left:0px;font-size:32px;">{{device.Name10}}</span>
  33. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.value11" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1020px;left:761px;font-size:32px;" />
  34. <span id="Lable125" style="width:700px;height: 63px;z-index:126;position:absolute;top: 1030px;left:0px;font-size:32px;">{{device.Name11}}</span>
  35. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.value12" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1120px;left:761px;font-size:32px;" />
  36. <span id="Lable125" style="width:700px;height: 63px;z-index:126;position:absolute;top: 1130px;left:0px;font-size:32px;">{{device.Name12}}</span>
  37. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.value17" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1220px;left:761px;font-size:32px;" />
  38. <span id="Lable125" style="width:700px;height: 63px;z-index:126;position:absolute;top: 1230px;left:0px;font-size:32px;">{{device.Name17}}</span>
  39. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.value18" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1320px;left:761px;font-size:32px;" />
  40. <span id="Lable125" style="width:700px;height: 63px;z-index:126;position:absolute;top: 1330px;left:0px;font-size:32px;">{{device.Name18}}</span>
  41. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.value13" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1420px;left:700px;font-size:32px;" />
  42. <span id="Lable125" style="width:300px;height: 63px;z-index:126;position:absolute;top: 1430px;left:0px;font-size:32px;">{{device.Name15}}</span>
  43. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.value14" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1420px;left:470px;font-size:32px;" />
  44. <span id="Lable125" style="width:40px;height: 63px;z-index:126;position:absolute;top: 1430px;left:390px;font-size:32px;">天</span>
  45. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.value15" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1420px;left:200px;font-size:32px;" />
  46. <span id="Lable125" style="width:40px;height: 63px;z-index:126;position:absolute;top: 1430px;left:640px;font-size:32px;">时</span>
  47. <span id="Lable125" style="width:40px;height: 63px;z-index:126;position:absolute;top: 1430px;left:880px;font-size:32px;">分</span>
  48. //<input name="RichTextBox110" type="text" id="RichTextBox110" v-model="device.value" style="width:160px;height: 80px;z-index:129;position:absolute;top: 820px;left:191px;font-size:32px; " />
  49. //<span id="Lable123" style="width:162px;height: 13px;z-index:126;position:absolute;top: 800px;left:0px;font-size:32px;">{{device.Name}}</span>
  50. //<input name="RichTextBox111" type="text" id="RichTextBox111" v-model="device.value10" style="width:120px;height: 80px;z-index:129;position:absolute;top: 820px;left:561px;font-size:32px;" />
  51. //<span id="Lable124" style="width:142px;height: 13px;z-index:126;position:absolute;top: 800px;left:380px;font-size:32px;">{{device.Name10}}</span>
  52. //<input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.value11" style="width:160px;height: 80px;z-index:129;position:absolute;top: 820px;left:871px;font-size:32px;" />
  53. //<span id="Lable125" style="width:152px;height: 13px;z-index:126;position:absolute;top: 800px;left:700px;font-size:32px;">{{device.Name11}}</span>
  54. //<input name="RichTextBox113" type="text" id="RichTextBox113" v-model="device.value12" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1020px;left:191px;font-size:32px;" />
  55. //<span id="Lable126" style="width:152px;height: 13px;z-index:126;position:absolute;top: 1000px;left:0px;font-size:32px;">{{device.Name12}}</span>
  56. //<input name="RichTextBox114" type="text" id="RichTextBox114" v-model="device.value13" style="width:120px;height: 80px;z-index:129;position:absolute;top: 1020px;left:561px;font-size:32px;" />
  57. //<span id="Lable127" style="width:162px;height: 13px;z-index:126;position:absolute;top: 1000px;left:380px;font-size:32px;">{{device.Name13}}</span>
  58. //<input name="RichTextBox115" type="text" id="RichTextBox115" v-model="device.value14" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1020px;left:871px;font-size:32px;" />
  59. //<span id="Lable128" style="width:162px;height: 13px;z-index:126;position:absolute;top: 1000px;left:700px;font-size:32px;">{{device.Name14}}</span>
  60. // <input name="RichTextBox116" type="text" id="RichTextBox116" v-model="device.value15" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1220px;left:191px;font-size:32px;" />
  61. //<span id="Lable116" style="width:152px;height: 13px;z-index:126;position:absolute;top: 1200px;left:0px;font-size:32px;">{{device.Name15}}</span>
  62. //<input name="RichTextBox117" type="text" id="RichTextBox117" v-model="device.value16" style="width:120px;height: 80px;z-index:129;position:absolute;top: 1220px;left:561px;font-size:32px;" />
  63. //<span id="Lable117" style="width:162px;height: 13px;z-index:126;position:absolute;top: 1200px;left:380px;font-size:32px;">{{device.Name16}}</span>
  64. //<input name="RichTextBox118" type="text" id="RichTextBox118" v-model="device.value17" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1220px;left:871px;font-size:32px;" />
  65. //<span id="Lable118" style="width:162px;height: 13px;z-index:126;position:absolute;top: 1200px;left:700px;font-size:32px;">{{device.Name17}}</span>
  66. }
  67. else
  68. {
  69. <img style="border-width:0px;width:1024px;height:768px; z-index:0; position:absolute;left:25px;top:25px;"
  70. src="https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/wwwroot/pic/安徽海立S.png"
  71. id="ccb" />
  72. <div v-if="device.value19 === 1" style="z-index:1; position:absolute;left:0px;top:0px;">
  73. <img src="https://shyp.yunzutai.com:22744/Uploads/Files/2021/12/10/115e6854e0ac4449ba453714d6d4a2a4.svg" alt="Smiley face" width="64" height="64">
  74. </div>
  75. <div v-if="device.value19 === 0" style="z-index:1; position:absolute;left:65px;top:0px;">
  76. <img src="https://shyp.yunzutai.com:22744/Uploads/Files/2021/12/10/3e6ba57ec6ef4c299524094e2e26e4f3.svg" alt="Smiley face" width="64" height="64">
  77. </div>
  78. <input name="RichTextBox110" type="text" id="RichTextBox110" v-model="device.value20" style="width:160px;height: 80px;z-index:129;position:absolute;top: 820px;left:191px;font-size:32px; " />
  79. <span id="Lable123" style="width:162px;height: 13px;z-index:126;position:absolute;top: 800px;left:0px;font-size:32px;">{{device.Name20}}</span>
  80. <input name="RichTextBox111" type="text" id="RichTextBox111" v-model="device.value21" style="width:120px;height: 80px;z-index:129;position:absolute;top: 820px;left:561px;font-size:32px;" />
  81. <span id="Lable124" style="width:142px;height: 13px;z-index:126;position:absolute;top: 800px;left:380px;font-size:32px;">{{device.Name21}}</span>
  82. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.value22" style="width:160px;height: 80px;z-index:129;position:absolute;top: 820px;left:871px;font-size:32px;" />
  83. <span id="Lable125" style="width:152px;height: 13px;z-index:126;position:absolute;top: 800px;left:700px;font-size:32px;">{{device.Name22}}</span>
  84. <input name="RichTextBox113" type="text" id="RichTextBox113" v-model="device.value23" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1020px;left:191px;font-size:32px;" />
  85. <span id="Lable126" style="width:152px;height: 13px;z-index:126;position:absolute;top: 1000px;left:0px;font-size:32px;">{{device.Name23}}</span>
  86. <input name="RichTextBox114" type="text" id="RichTextBox114" v-model="device.value24" style="width:120px;height: 80px;z-index:129;position:absolute;top: 1020px;left:561px;font-size:32px;" />
  87. <span id="Lable127" style="width:162px;height: 13px;z-index:126;position:absolute;top: 1000px;left:380px;font-size:32px;">{{device.Name24}}</span>
  88. <input name="RichTextBox115" type="text" id="RichTextBox115" v-model="device.value25" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1020px;left:871px;font-size:32px;" />
  89. <span id="Lable128" style="width:162px;height: 13px;z-index:126;position:absolute;top: 1000px;left:700px;font-size:32px;">{{device.Name25}}</span>
  90. <input name="RichTextBox116" type="text" id="RichTextBox116" v-model="device.value26" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1220px;left:191px;font-size:32px;" />
  91. <span id="Lable116" style="width:152px;height: 13px;z-index:126;position:absolute;top: 1200px;left:0px;font-size:32px;">{{device.Name26}}</span>
  92. <input name="RichTextBox117" type="text" id="RichTextBox117" v-model="device.value27" style="width:120px;height: 80px;z-index:129;position:absolute;top: 1220px;left:561px;font-size:32px;" />
  93. <span id="Lable117" style="width:162px;height: 13px;z-index:126;position:absolute;top: 1200px;left:380px;font-size:32px;">{{device.Name27}}</span>
  94. <input name="RichTextBox118" type="text" id="RichTextBox118" v-model="device.value28" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1220px;left:871px;font-size:32px;" />
  95. <span id="Lable118" style="width:162px;height: 13px;z-index:126;position:absolute;top: 1200px;left:700px;font-size:32px;">{{device.Name28}}</span>
  96. }
  97. }
  98. <div style="top: 1600px;">
  99. <div class="button3 btn1" >
  100. <span>巡检</span>
  101. </div>
  102. <div class="button3 btn2" >
  103. <span>维保</span>
  104. </div>
  105. <div class="button3 btn3" >
  106. <span>维修</span>
  107. </div>
  108. </div>
  109. </div>
  110. @*<input type="button" id="sendButton" value="发送消息" />*@
  111. @* <p>模拟推送消息:</p>
  112. <div>
  113. <textarea v-model="pushContent"></textarea>
  114. <button @@click="PushMsg">发布通告</button>
  115. </div>
  116. <span>最新的消息通知:</span>{{message}}
  117. <p>接到的消息通知:</p>
  118. <div>
  119. {{msgs}}
  120. </div>
  121. <p>模拟实时更新数据:</p>
  122. <div>
  123. <span>状态1:</span><span>{{dataInfo.status1}}</span>
  124. <br>
  125. <span>状态2:</span><span>{{dataInfo.status2}}</span>
  126. </div>*@
  127. </div>
  128. </body>
  129. <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  130. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  131. <script src="signalr/signalr.js"></script>
  132. <script src="signalr/hubs"></script>
  133. <script>
  134. var app = new Vue({
  135. el: "#app",
  136. created: function () {
  137. //document.getElementById("sendButton").disabled = true; http://114.115.174.174:80/DigitalEnvironmentallyWebScadaTest/
  138. this.connection = new signalR.HubConnectionBuilder()
  139. .withUrl("https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/myhub",{
  140. skipNegotiation: true, // 关键
  141. transport: signalR.HttpTransportType.WebSockets // 关键
  142. })
  143. //.withUrl("http://localhost:5000/myhub")
  144. .build();
  145. this.connection.on("showmsg", this.ShowMsg);
  146. this.connection.on("updatedata", this.UpdateData);
  147. this.connection.on("updatedevicedata", this.UpdateDeviceData);
  148. this.connection.start();
  149. //this.connection.start().then(function () {
  150. // document.getElementById("sendButton").disabled = false;
  151. //}).catch(function (err) {
  152. // document.getElementById("sendButton").disabled = false;
  153. // return console.error(err.toString());
  154. //});
  155. },
  156. data: {
  157. flageRed:true,
  158. flageGreen:true,
  159. device: {
  160. value: "123456789", Name: "前处理过滤箱电子差压计D3实际值",
  161. value10: "123456789", Name10: "前处理过滤箱电子差压计D3实际值",
  162. value11: "123456789", Name11: "前处理过滤箱电子差压计D3实际值",
  163. value12: "123456789", Name12: "前处理过滤箱电子差压计D3实际值",
  164. value13: "123456789", Name13: "前处理过滤箱电子差压计D3实际值",
  165. value14: "123456789", Name14: "前处理过滤箱电子差压计D3实际值",
  166. value15: "123456789", Name15: "前处理过滤箱电子差压计D3实际值",
  167. value16: "123456789", Name16: "前处理过滤箱电子差压计D3实际值",
  168. value17: "123456789", Name17: "前处理过滤箱电子差压计D3实际值",
  169. value18: "123456789", Name18: "前处理过滤箱电子差压计D3实际值",
  170. value19: "123456789", Name19: "前处理过滤箱电子差压计D3实际值",
  171. valueB: "123456789", NameB: "前处理过滤箱电子差压计D3实际值",
  172. valueB10: "123456789", NameB10: "前处理过滤箱电子差压计D3实际值",
  173. valueB11: "123456789", NameB11: "前处理过滤箱电子差压计D3实际值",
  174. valueB12: "123456789", NameB12: "前处理过滤箱电子差压计D3实际值",
  175. valueB13: "123456789", NameB13: "前处理过滤箱电子差压计D3实际值",
  176. valueB14: "123456789", NameB14: "前处理过滤箱电子差压计D3实际值",
  177. valueB15: "123456789", NameB15: "前处理过滤箱电子差压计D3实际值",
  178. valueB16: "123456789", NameB16: "前处理过滤箱电子差压计D3实际值",
  179. valueB17: "123456789", NameB17: "前处理过滤箱电子差压计D3实际值",
  180. valueB18: "123456789", NameB18: "前处理过滤箱电子差压计D3实际值",
  181. valueB19: "123456789", NameB19: "前处理过滤箱电子差压计D3实际值",
  182. value20: "123456789", Name20: "前处理过滤箱电子差压计D3实际值",
  183. value10: "123456789", Name10: "前处理过滤箱电子差压计D3实际值",
  184. value21: "123456789", Name21: "前处理过滤箱电子差压计D3实际值",
  185. value22: "123456789", Name22: "前处理过滤箱电子差压计D3实际值",
  186. value23: "123456789", Name23: "前处理过滤箱电子差压计D3实际值",
  187. value24: "123456789", Name24: "前处理过滤箱电子差压计D3实际值",
  188. value25: "123456789", Name25: "前处理过滤箱电子差压计D3实际值",
  189. value26: "123456789", Name26: "前处理过滤箱电子差压计D3实际值",
  190. value27: "123456789", Name27: "前处理过滤箱电子差压计D3实际值",
  191. value28: "123456789", Name28: "前处理过滤箱电子差压计D3实际值",
  192. value29: "123456789", Name29: "前处理过滤箱电子差压计D3实际值"
  193. },
  194. message: "HelloVue",
  195. connection: null,
  196. msgs: [],
  197. dataInfo: { status1: "off", status2: "off" },
  198. pushContent: ""
  199. },
  200. methods: {
  201. ShowMsg: function (msgInfo) {
  202. //this.message = msgInfo.title + ":" + msgInfo.msgContent;
  203. //this.msgs.push(this.message);
  204. },
  205. PushMsg: function () {
  206. that = this;
  207. axios.get('http://localhost:5000/WeatherForecast/PushMsg',
  208. { params: { content: that.pushContent } })
  209. .then(function (response) {
  210. console.log(response);
  211. })
  212. .catch(function (error) {
  213. console.log(error);
  214. });
  215. },
  216. UpdateDeviceData: function (dataMsg) {
  217. this.device.value = dataMsg.value;
  218. this.device.Name = dataMsg.name;
  219. this.device.value10 = dataMsg.value10;
  220. this.device.Name10 = dataMsg.name10;
  221. this.device.value11 = dataMsg.value11;
  222. this.device.Name11 = dataMsg.name11;
  223. this.device.value12 = dataMsg.value12;
  224. this.device.Name12 = dataMsg.name12;
  225. this.device.value13 = dataMsg.value13;
  226. this.device.Name13 = dataMsg.name13;
  227. this.device.value14 = dataMsg.value14;
  228. this.device.Name14 = dataMsg.name14;
  229. this.device.value15 = dataMsg.value15;
  230. this.device.Name15 = dataMsg.name15;
  231. this.device.value16 = dataMsg.value16;
  232. this.device.Name16 = dataMsg.name16;
  233. this.device.value17 = dataMsg.value17;
  234. this.device.Name17 = dataMsg.name17;
  235. this.device.value18 = dataMsg.value18;
  236. this.device.Name18 = dataMsg.name18;
  237. this.device.value19 = dataMsg.value19;
  238. this.device.Name19 = dataMsg.name19;
  239. this.device.valueB = dataMsg.valueb;
  240. this.device.NameB = dataMsg.nameb;
  241. this.device.valueB10 = dataMsg.valueb10;
  242. this.device.NameB10 = dataMsg.nameb10;
  243. this.device.valueB11 = dataMsg.valueb11;
  244. this.device.NameB11 = dataMsg.nameb11;
  245. this.device.valueB12 = dataMsg.valueb12;
  246. this.device.NameB12 = dataMsg.nameb12;
  247. this.device.valueB13 = dataMsg.valueb13;
  248. this.device.NameB13 = dataMsg.nameb13;
  249. this.device.valueB14 = dataMsg.valueb14;
  250. this.device.NameB14 = dataMsg.nameb14;
  251. this.device.valueB15 = dataMsg.valueb15;
  252. this.device.NameB15 = dataMsg.nameb15;
  253. this.device.valueB16 = dataMsg.valueb16;
  254. this.device.NameB16 = dataMsg.nameb16;
  255. this.device.valueB17 = dataMsg.valueb17;
  256. this.device.NameB17 = dataMsg.nameb17;
  257. this.device.valueB18 = dataMsg.valueb18;
  258. this.device.NameB18 = dataMsg.nameb18;
  259. this.device.valueB19 = dataMsg.valueb19;
  260. this.device.NameB19 = dataMsg.nameb19;
  261. this.device.value20 = dataMsg.value20;
  262. this.device.Name20 = dataMsg.name20;
  263. this.device.value21 = dataMsg.value21;
  264. this.device.Name21 = dataMsg.name21;
  265. this.device.value22 = dataMsg.value22;
  266. this.device.Name22 = dataMsg.name22;
  267. this.device.value23 = dataMsg.value23;
  268. this.device.Name23 = dataMsg.name23;
  269. this.device.value24 = dataMsg.value24;
  270. this.device.Name24 = dataMsg.name24;
  271. this.device.value25 = dataMsg.value25;
  272. this.device.Name25 = dataMsg.name25;
  273. this.device.value26 = dataMsg.value26;
  274. this.device.Name26 = dataMsg.name26;
  275. this.device.value27 = dataMsg.value27;
  276. this.device.Name27 = dataMsg.name27;
  277. this.device.value28 = dataMsg.value28;
  278. this.device.Name28 = dataMsg.name28;
  279. this.device.value29 = dataMsg.value29;
  280. this.device.Name29 = dataMsg.name29;
  281. },
  282. UpdateData: function (dataMsg) {
  283. //alert(DeviceValueModel);
  284. //this.dataInfo = dataMsg;
  285. //this.device = DeviceValueModel;
  286. //this.device.Value = dataMsg.Value;
  287. //this.device.Name = dataMsg.Name;
  288. //this.message = dataMsg;
  289. }
  290. }
  291. });
  292. </script>
  293. <style>
  294. .breadcrumb{
  295. font-size: 33px;
  296. }
  297. .button3 {
  298. z-index:126;
  299. position:absolute;
  300. top: 1600px;
  301. /*left:0px;*/
  302. width: 200px;
  303. height: 70px;
  304. line-height: 60px;
  305. background-color: #2e82ff;
  306. color: #ffffff;
  307. font-size: 50px;
  308. text-align: center;
  309. border-radius: 27px;
  310. position: relative;
  311. }
  312. .button3::before {
  313. /*left: 0px;*/
  314. content: "";
  315. position: absolute;
  316. width: 100%;
  317. height: 100%;
  318. background-image:
  319. linear-gradient(to right, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0) 70%);
  320. background-size: 200%;
  321. animation: wipes 1s infinite;
  322. }
  323. .btn1 { position: absolute;top: 1600px;left:10px; }
  324. .btn2 { position: absolute;top: 1600px;left:380px;}
  325. .btn3 { position: absolute;top: 1600px;left:760px; }
  326. @@keyframes wipes {
  327. 0% {
  328. background-position: 0 0;
  329. }
  330. 100% {
  331. background-position: 100% 0;
  332. }
  333. }
  334. </style>