index.html 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <head>
  2. <link rel="manifest" href="/site.webmanifest">
  3. <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"
  4. integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
  5. <link rel="stylesheet" href="../css/style.css">
  6. <link rel="preconnect" href="https://fonts.gstatic.com">
  7. <link href="https://fonts.loli.net/css2?family=Anonymous+Pro:ital,wght@0,400;0,700;1,400;1,700
  8. &family=Noto+Serif+SC:wght@300;400;500;600;700&display=swap" rel="stylesheet">
  9. <title>paint</title>
  10. <style>
  11. .box {
  12. display: inline-block;
  13. margin: auto;
  14. margin-top: 10px;
  15. margin-bottom: 10px;
  16. cursor: pointer;
  17. width: 180px;
  18. height: 3px;
  19. background-color: #bdbdbd;
  20. position: relative;
  21. vertical-align: middle;
  22. }
  23. .box .hd {
  24. width: 18px;
  25. height: 18px;
  26. background-color: #56a3fc;
  27. border-radius: 6px;
  28. position: absolute;
  29. left: 0;
  30. top: -8px;
  31. cursor: pointer;
  32. margin: 0;
  33. transform: translateX(-9px);
  34. z-index: 1;
  35. }
  36. .box .hdt {
  37. position: absolute;
  38. top: 0;
  39. left: 0;
  40. height: 3px;
  41. width: 0;
  42. background-color: #56a3fc;
  43. margin: 0;
  44. }
  45. .box-text {
  46. user-select: none;
  47. width: fit-content;
  48. z-index: -1;
  49. transform: translate(-30px, -10px);
  50. background-color: rgba(215, 215, 215, 0.7);
  51. border: 2px solid rgba(215, 215, 215, 0.7);
  52. border-radius: 5px;
  53. }
  54. * {
  55. -webkit-box-sizing: content-box;
  56. box-sizing: content-box;
  57. }
  58. #main {
  59. display: flex;
  60. flex-direction: row;
  61. width: 900px;
  62. margin: 0 auto;
  63. margin-top: -20px;
  64. text-align: center;
  65. }
  66. #draw {
  67. width: 640px;
  68. height: 640px;
  69. display: flex;
  70. flex-direction: row;
  71. flex-wrap: wrap;
  72. margin: auto;
  73. transition-duration: 0.3s;
  74. transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  75. transform-origin: 0px 0px;
  76. border: 1px solid rgb(211, 211, 211);
  77. }
  78. .pixel-line {
  79. width: 5px;
  80. height: 5px;
  81. box-sizing: border-box;
  82. border: 0.1px solid rgb(211, 211, 211);
  83. }
  84. .pixel {
  85. width: 5px;
  86. height: 5px;
  87. }
  88. #color-list {
  89. display: flex;
  90. flex-direction: column;
  91. flex-wrap: wrap;
  92. padding: 0;
  93. margin: auto;
  94. }
  95. #tools {
  96. display: flex;
  97. flex-direction: column;
  98. width: 250px;
  99. position: fixed;
  100. bottom: 20px;
  101. right: 20px;
  102. transition-duration: 0.3s;
  103. transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  104. background-color: rgba(15, 15, 15, 0.1);
  105. border: 5px solid rgba(15, 15, 15, 0.1);
  106. border-radius: 15px;
  107. backdrop-filter: blur(5px);
  108. }
  109. .color-item {
  110. height: 20px;
  111. width: 20px;
  112. }
  113. #now-color {
  114. width: 80px;
  115. height: 80px;
  116. margin: auto;
  117. border: 1px solid rgb(147, 147, 147);
  118. border-radius: 15px;
  119. background-color: #000;
  120. }
  121. li {
  122. list-style: none;
  123. margin-bottom: 3px;
  124. display: block;
  125. box-sizing: border-box;
  126. }
  127. .btn {
  128. text-shadow: rgb(85, 85, 85) 3px 2px 4px;
  129. display: inline-block;
  130. }
  131. .noshadow {
  132. text-shadow: none;
  133. }
  134. #controls {
  135. position: fixed;
  136. text-align: left;
  137. left: 0;
  138. right: 0;
  139. margin: 0 auto;
  140. margin-top: 10px;
  141. width: fit-content;
  142. padding-left: 3px;
  143. padding-right: 5px;
  144. border: 5px solid rgba(15, 15, 15, 0.1);
  145. border-radius: 15px;
  146. background-color: rgba(15, 15, 15, 0.1);
  147. backdrop-filter: blur(5px);
  148. }
  149. #version {
  150. background-color: rgba(215, 215, 215, 0.7);
  151. border-radius: 5px;
  152. padding-right: 3px;
  153. }
  154. </style>
  155. <script src="../js/av-min.js"></script>
  156. <script src="https://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
  157. <script type="text/javascript" src="../js/paint.js">
  158. </script>
  159. </head>
  160. <body>
  161. <a class="btn btn-info" href="/" style="text-shadow: rgb(85, 85, 85) 3px 2px 4px;"><span
  162. class="glyphicon glyphicon-home" aria-hidden="true"></span>&nbsp;返回</a>
  163. <div id="main" style="text-align:center">
  164. <div id="draw"></div>
  165. <div id="tools">
  166. <button class="btn" id="toggle" style="background:rgba(215, 215, 215,0.7)"><span
  167. class="glyphicon glyphicon-eye-open" aria-hidden="true"></span></button>
  168. <div id="now-color"></div>
  169. <div class="box canToggle" id="box-r">
  170. <i class="hd"></i>
  171. <i class="hdt"></i>
  172. <div class="box-text" id="box-r-text">0</div>
  173. </div>
  174. <div class="box canToggle" id="box-g">
  175. <i class="hd"></i>
  176. <i class="hdt"></i>
  177. <div class="box-text" id="box-g-text">0</div>
  178. </div>
  179. <div class="box canToggle" id="box-b">
  180. <i class="hd"></i>
  181. <i class="hdt"></i>
  182. <div class="box-text" id="box-b-text">0</div>
  183. </div>
  184. <ul class="canToggle" id="color-list"></ul>
  185. </div>
  186. </div>
  187. <div id="controls">
  188. <button class="btn btn-default noshadow" id="help"
  189. onclick="alert('说明:左键绘制,右键擦除。\n左右方向键可浏览历史版本,鼠标悬停于版本上可查看时间。\n点击上传后,同一设备一天内的编辑将会保存在一个版本中,并对所有人可见。')"><span
  190. class="glyphicon glyphicon-question-sign" aria-hidden="true"></span></button>
  191. <button class="btn btn-default noshadow" id="zoom"><span class="glyphicon glyphicon-zoom-in"
  192. aria-hidden="true"></span></button>
  193. <button class="btn btn-warning" id="show-hide-line">
  194. <span class="glyphicon glyphicon-th" aria-hidden="true"></span>&nbsp;网格</button>
  195. <button class="btn btn-primary" id="upload"><span class="glyphicon glyphicon-cloud-upload"
  196. aria-hidden="true"></span>&nbsp;上传</button>
  197. <button class="btn btn-primary" id="reset"><span class="glyphicon glyphicon-cloud-download"
  198. aria-hidden="true"></span>&nbsp;同步</button>
  199. <button class="btn btn-danger" id="clear" onclick="tryClear()"><span class="glyphicon glyphicon-ban-circle"
  200. aria-hidden="true"></span>&nbsp;清空</button>
  201. <a id="lbtn" tabindex="0" class="btn btn-default noshadow" onclick="curVer++,getMap()">
  202. <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
  203. </a>
  204. <a id="rbtn" tabindex="0" class="btn btn-default noshadow" onclick="curVer==0?true:(curVer--,getMap());">
  205. <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
  206. </a>
  207. <span id="version" style="margin-right:auto"></span>
  208. </div>
  209. </body>