index.module.less 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. .tempoPractice {
  2. position: fixed;
  3. left: 0;
  4. top: 0;
  5. width: 100vw;
  6. height: 100vh;
  7. overflow: hidden;
  8. display: flex;
  9. flex-direction: column;
  10. background: url("./images/bg.png") no-repeat center center / cover;
  11. display: flex;
  12. flex-direction: column;
  13. }
  14. .conCon {
  15. flex: 1 auto;
  16. display: flex;
  17. align-items: center;
  18. }
  19. .pc {
  20. .container {
  21. max-width: 1200px;
  22. gap: 30px 0;
  23. }
  24. .beatSection {
  25. .beat {
  26. width: 206px;
  27. height: 284px;
  28. img {
  29. width: 140px;
  30. }
  31. }
  32. &.small {
  33. .beat {
  34. width: 139px !important;
  35. height: 191px !important;
  36. // width: 65px;
  37. // height: 86px;
  38. img {
  39. width: 108px;
  40. }
  41. }
  42. }
  43. }
  44. .footer {
  45. padding-bottom: 36px;
  46. }
  47. }
  48. .head {
  49. position: relative;
  50. display: flex;
  51. align-items: flex-start;
  52. justify-content: space-between;
  53. padding: 0 23px 8px 41px;
  54. transition: opacity 0.3s ease-in-out;
  55. .back {
  56. padding-top: 17px;
  57. img {
  58. width: 46px;
  59. height: 46px;
  60. display: block;
  61. }
  62. }
  63. .title {
  64. img {
  65. width: 173px;
  66. height: 75px;
  67. display: block;
  68. }
  69. }
  70. }
  71. .container {
  72. display: flex;
  73. align-items: center;
  74. justify-content: center;
  75. flex: 1 auto;
  76. flex-wrap: wrap;
  77. gap: 15px 0;
  78. max-width: 900px;
  79. margin: 0 auto;
  80. }
  81. .beatSection {
  82. display: flex;
  83. align-items: center;
  84. justify-content: center;
  85. &.small {
  86. width: 50%;
  87. // margin: 0 16px;
  88. &:nth-child(2n + 1) {
  89. justify-content: flex-end;
  90. padding-right: 12px;
  91. }
  92. &:nth-child(2n + 2) {
  93. justify-content: flex-start;
  94. padding-left: 12px;
  95. }
  96. .beat {
  97. border: 2px solid #fff;
  98. width: 65px;
  99. height: 86px;
  100. cursor: pointer;
  101. margin: 0 7px;
  102. &::before,
  103. &::after {
  104. width: 19px;
  105. height: 5px;
  106. }
  107. img {
  108. width: 48px;
  109. }
  110. }
  111. }
  112. .beat {
  113. display: flex;
  114. align-items: center;
  115. flex-direction: column;
  116. margin: 0 13px;
  117. width: 118px;
  118. height: 156px;
  119. box-shadow: 0px 2px 16px 0px #76C3D2;
  120. border-radius: 14px;
  121. border: 3px solid #fff;
  122. background: #FFFFFF;
  123. position: relative;
  124. .direction {
  125. position: absolute;
  126. left: 0;
  127. right: 0;
  128. bottom: 0;
  129. top: 0;
  130. display: flex;
  131. align-items: center;
  132. flex-direction: column;
  133. z-index: 9;
  134. &>div {
  135. width: 100%;
  136. flex: 1;
  137. }
  138. }
  139. &.active {
  140. border: 3px solid rgba(255, 167, 0, 1);
  141. }
  142. .imgSection {
  143. display: flex;
  144. align-items: center;
  145. justify-content: center;
  146. flex: 1;
  147. }
  148. img {
  149. width: 96px;
  150. }
  151. &::before,
  152. &::after {
  153. content: '';
  154. display: block;
  155. width: 30px;
  156. height: 7px;
  157. background: url('./images/icon-arrow.png') no-repeat center center / contain;
  158. margin: 0 auto;
  159. }
  160. &::before {
  161. margin-top: 3px;
  162. }
  163. &::after {
  164. margin-bottom: 3px;
  165. transform: rotate(180deg);
  166. }
  167. }
  168. }
  169. .footer {
  170. padding: 12px 0 20px;
  171. display: flex;
  172. align-items: center;
  173. justify-content: center;
  174. &>div {
  175. margin: 0 9px;
  176. cursor: pointer;
  177. img {
  178. width: inherit;
  179. height: inherit;
  180. display: block;
  181. }
  182. }
  183. .play {
  184. width: 54px;
  185. height: 55px;
  186. }
  187. .playType {
  188. width: 175px;
  189. height: 39px;
  190. }
  191. .randomTempo {
  192. width: 90px;
  193. height: 39px;
  194. }
  195. .speedChange {
  196. width: 110px;
  197. height: 39px;
  198. background: url('./images/btn-4.png') no-repeat center center / contain;
  199. display: flex;
  200. align-items: center;
  201. padding: 9px;
  202. display: flex;
  203. align-items: center;
  204. :global {
  205. .van-popover__wrapper {
  206. flex: 1;
  207. }
  208. }
  209. .speedNum {
  210. flex: 1;
  211. font-size: 16px;
  212. font-weight: 600;
  213. color: #6B3B19;
  214. display: flex;
  215. align-items: center;
  216. justify-content: center;
  217. &::after {
  218. content: '';
  219. display: inline-block;
  220. width: 8px;
  221. height: 5px;
  222. margin-left: 4px;
  223. background: url('./images/icon-arrow2.png') no-repeat center center / contain;
  224. }
  225. }
  226. }
  227. .speedPlus,
  228. .speedAdd {
  229. width: 21px;
  230. height: 21px;
  231. }
  232. }
  233. .settingPopup {
  234. background: transparent;
  235. overflow: visible;
  236. }
  237. .popupContainer {
  238. margin-top: -10px !important;
  239. --van-popover-action-height: 32px;
  240. --van-popover-action-font-size: 14px;
  241. --van-popover-radius: 12px;
  242. --van-popover-action-width: 85px;
  243. padding: 4Px 0;
  244. border-radius: 12px;
  245. background-color: #fff;
  246. box-shadow: 0 0.05333rem 0.32rem rgba(50, 50, 51, .12);
  247. :global {
  248. .van-popover__content {
  249. max-height: 200px;
  250. box-shadow: none;
  251. overflow-y: auto;
  252. &::-webkit-scrollbar {
  253. width: 4px;
  254. }
  255. &::-webkit-scrollbar-thumb {
  256. border-radius: 10px;
  257. background: rgba(0, 0, 0, 0.2);
  258. }
  259. &::-webkit-scrollbar-track {
  260. border-radius: 0;
  261. background: rgba(0, 0, 0, 0.1);
  262. }
  263. }
  264. .van-popover__action {
  265. padding: 0 9px;
  266. }
  267. }
  268. }