index.html 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  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. transform-origin: 0px 0px;
  75. border: 1px solid rgb(211, 211, 211);
  76. }
  77. .pixel-line {
  78. width: 5px;
  79. height: 5px;
  80. box-sizing: border-box;
  81. border: 0.1px solid rgb(211, 211, 211);
  82. }
  83. .pixel {
  84. width: 5px;
  85. height: 5px;
  86. }
  87. #color-list {
  88. display: flex;
  89. flex-direction: column;
  90. flex-wrap: wrap;
  91. padding: 0;
  92. margin: auto;
  93. }
  94. #tools {
  95. display: flex;
  96. flex-direction: column;
  97. width: 250px;
  98. position: fixed;
  99. bottom: 20px;
  100. right: 20px;
  101. transition-duration: 0.3s;
  102. background-color: rgba(15, 15, 15, 0.1);
  103. border: 5px solid rgba(15, 15, 15, 0.1);
  104. border-radius: 15px;
  105. backdrop-filter: blur(5px);
  106. }
  107. .color-item {
  108. height: 20px;
  109. width: 20px;
  110. }
  111. #now-color {
  112. width: 80px;
  113. height: 80px;
  114. margin: auto;
  115. border: 1px solid rgb(147, 147, 147);
  116. border-radius: 15px;
  117. background-color: #000;
  118. }
  119. li {
  120. list-style: none;
  121. margin-bottom: 3px;
  122. display: block;
  123. box-sizing: border-box;
  124. }
  125. .btn {
  126. text-shadow: rgb(85, 85, 85) 3px 2px 4px;
  127. display: inline-block;
  128. }
  129. .noshadow {
  130. text-shadow: none;
  131. }
  132. #controls {
  133. position: fixed;
  134. text-align: left;
  135. left: 0;
  136. right: 0;
  137. margin: 0 auto;
  138. margin-top: 10px;
  139. width: fit-content;
  140. padding-left: 3px;
  141. padding-right: 5px;
  142. border: 5px solid rgba(15, 15, 15, 0.1);
  143. border-radius: 15px;
  144. background-color: rgba(15, 15, 15, 0.1);
  145. backdrop-filter: blur(5px);
  146. }
  147. #version {
  148. background-color: rgba(215, 215, 215, 0.7);
  149. border-radius: 5px;
  150. padding-right: 3px;
  151. }
  152. </style>
  153. <script src="../js/av-min.js"></script>
  154. <script src="https://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
  155. <script type="text/javascript" src="../js/paint.js">
  156. </script>
  157. </head>
  158. <body>
  159. <a class="btn btn-info" href="/" style="text-shadow: rgb(85, 85, 85) 3px 2px 4px;"><span
  160. class="glyphicon glyphicon-home" aria-hidden="true"></span>&nbsp;返回</a>
  161. <div id="main" style="text-align:center">
  162. <div id="draw"></div>
  163. <div id="tools">
  164. <button class="btn" id="toggle" style="background:rgba(215, 215, 215,0.7)"><span
  165. class="glyphicon glyphicon-eye-open" aria-hidden="true"></span></button>
  166. <div id="now-color"></div>
  167. <div class="box canToggle" id="box-r">
  168. <i class="hd"></i>
  169. <i class="hdt"></i>
  170. <div class="box-text" id="box-r-text">0</div>
  171. </div>
  172. <div class="box canToggle" id="box-g">
  173. <i class="hd"></i>
  174. <i class="hdt"></i>
  175. <div class="box-text" id="box-g-text">0</div>
  176. </div>
  177. <div class="box canToggle" id="box-b">
  178. <i class="hd"></i>
  179. <i class="hdt"></i>
  180. <div class="box-text" id="box-b-text">0</div>
  181. </div>
  182. <ul class="canToggle" id="color-list"></ul>
  183. </div>
  184. </div>
  185. <div id="controls">
  186. <button class="btn btn-default noshadow" id="help" onclick="alert('说明:左键绘制,右键擦除。\n左右方向键可浏览历史版本,鼠标悬停于版本上可查看时间。\n点击上传后,同一设备一天内的编辑将会保存在一个版本中,并对所有人可见。')"><span class="glyphicon glyphicon-question-sign"
  187. aria-hidden="true"></span></button>
  188. <button class="btn btn-default noshadow" id="zoom"><span class="glyphicon glyphicon-zoom-in"
  189. aria-hidden="true"></span></button>
  190. <button class="btn btn-warning" id="show-hide-line">
  191. <span class="glyphicon glyphicon-th" aria-hidden="true"></span>&nbsp;网格</button>
  192. <button class="btn btn-primary" id="upload"><span class="glyphicon glyphicon-cloud-upload"
  193. aria-hidden="true"></span>&nbsp;上传</button>
  194. <button class="btn btn-primary" id="reset"><span class="glyphicon glyphicon-cloud-download"
  195. aria-hidden="true"></span>&nbsp;同步</button>
  196. <button class="btn btn-danger" id="clear" onclick="tryClear()"><span class="glyphicon glyphicon-ban-circle"
  197. aria-hidden="true"></span>&nbsp;清空</button>
  198. <a id="lbtn" tabindex="0" class="btn btn-default noshadow" onclick="curVer++,getMap()">
  199. <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
  200. </a>
  201. <a id="rbtn" tabindex="0" class="btn btn-default noshadow" onclick="curVer==0?true:(curVer--,getMap());">
  202. <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
  203. </a>
  204. <span id="version" style="margin-right:auto"></span>
  205. </div>
  206. </body>