index.module.less 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. .headerTop {
  2. display: flex;
  3. align-items: center;
  4. width: 100vw;
  5. height: 100%;
  6. flex-shrink: 0;
  7. margin-left: calc(-1 * var(--detailDataPaddingLeft));
  8. padding: 0 30px;
  9. background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 100%);
  10. &.headerTopRight {
  11. justify-content: flex-end;
  12. }
  13. }
  14. .modeWarn {
  15. position: fixed;
  16. left: 30px;
  17. bottom: 20px;
  18. border-radius: 16px;
  19. background-color: rgba(12, 51, 107, 0.61);
  20. padding: 6px 11px;
  21. align-items: center;
  22. display: flex;
  23. opacity: 0;
  24. transition: all .3s ease-in;
  25. &>div {
  26. margin-left: 4px;
  27. font-weight: 500;
  28. font-size: 14px;
  29. line-height: 20px;
  30. color: rgba(255, 255, 255, 0.7);
  31. }
  32. &>img {
  33. width: 18px;
  34. height: 18px;
  35. }
  36. &.modeWarnRight {
  37. left: inherit;
  38. right: 30px;
  39. }
  40. }
  41. .headTopLeftBox {
  42. position: fixed;
  43. top: 20px;
  44. left: 30px;
  45. display: flex;
  46. align-items: center;
  47. .img {
  48. width: 32px;
  49. height: 32px;
  50. }
  51. .listImg {
  52. margin-left: 16px;
  53. }
  54. .title {
  55. width: 210px;
  56. margin-left: 10px;
  57. position: relative;
  58. .symbolNote {
  59. max-width: calc(216px + 16px);
  60. position: absolute;
  61. top: 0;
  62. left: 0;
  63. content: "";
  64. width: calc(var(--noticeBarWidth, 100%) + 16px);
  65. height: 100%;
  66. background: url("./image/sj.png") no-repeat;
  67. background-size: 9px 6px;
  68. background-position: center right;
  69. }
  70. :global {
  71. .van-notice-bar {
  72. height: 30px;
  73. line-height: 30px;
  74. padding: 0;
  75. font-weight: 600;
  76. font-size: 18px;
  77. color: #FFFFFF;
  78. }
  79. }
  80. }
  81. .hidenBack {
  82. opacity: 0;
  83. pointer-events: none;
  84. }
  85. }
  86. .modeChangeBox {
  87. position: fixed;
  88. top: 20px;
  89. right: 30px;
  90. height: 32px;
  91. background: rgba(0, 0, 0, .4);
  92. border-radius: 16px;
  93. display: flex;
  94. align-items: center;
  95. padding: 0 10px;
  96. .img {
  97. width: 18px;
  98. height: 18px;
  99. }
  100. .title {
  101. margin-left: 6px;
  102. font-weight: 500;
  103. font-size: 14px;
  104. color: #FFFFFF;
  105. }
  106. }
  107. .headRight {
  108. display: flex;
  109. align-items: center;
  110. height: 100%;
  111. .btn {
  112. position: relative;
  113. display: flex;
  114. flex-direction: column;
  115. align-items: center;
  116. cursor: pointer;
  117. margin-right: 30px;
  118. &:last-child {
  119. margin-right: 0;
  120. }
  121. .iconBtn {
  122. width: 24px;
  123. height: 24px;
  124. }
  125. span {
  126. margin-top: 3px;
  127. font-weight: 500;
  128. font-size: 12px;
  129. color: #FFFFFF;
  130. line-height: 17px;
  131. }
  132. &:active {
  133. >span {
  134. color: #34D6FF
  135. }
  136. ;
  137. }
  138. &.playType:active {
  139. >img:nth-child(1) {
  140. content: url("./image/performAct.png");
  141. }
  142. >img:nth-child(2) {
  143. content: url("./image/singAct.png");
  144. }
  145. }
  146. &.playSource:active {
  147. >img:nth-child(1) {
  148. content: url("./image/musicAct.png");
  149. }
  150. >img:nth-child(2) {
  151. content: url("./image/backgroundAct.png");
  152. }
  153. }
  154. &.songSource:active {
  155. >img:nth-child(1) {
  156. content: url("./image/music1Act.png");
  157. }
  158. >img:nth-child(2) {
  159. content: url("./image/background1Act.png");
  160. }
  161. >img:nth-child(3) {
  162. content: url("./image/mingsongAct.png");
  163. }
  164. }
  165. &.section:active {
  166. >img {
  167. content: url("./image/section2.png");
  168. }
  169. }
  170. &.isSection {
  171. >span {
  172. color: #34D6FF
  173. }
  174. ;
  175. }
  176. &.speed:active {
  177. >img:nth-child(1) {
  178. content: url("./image/tickonAct.png");
  179. }
  180. >img:nth-child(2) {
  181. content: url("./image/tickoffAct.png");
  182. }
  183. }
  184. &.isSpeed {
  185. >img:nth-child(1) {
  186. content: url("./image/tickonAct.png");
  187. }
  188. >img:nth-child(2) {
  189. content: url("./image/tickoffAct.png");
  190. }
  191. >span {
  192. color: #34D6FF
  193. }
  194. ;
  195. }
  196. &.settingMode:active {
  197. >img {
  198. content: url("./image/icon_menuAct.png");
  199. }
  200. }
  201. &.isSettingMode {
  202. >img {
  203. content: url("./image/icon_menuAct.png");
  204. }
  205. >span {
  206. color: #34D6FF
  207. }
  208. ;
  209. }
  210. &.musicSheet:active {
  211. >img {
  212. content: url("./image/shengguiAct.png");
  213. }
  214. }
  215. &.isMusicSheet {
  216. >img {
  217. content: url("./image/shengguiAct.png");
  218. }
  219. >span {
  220. color: #34D6FF
  221. }
  222. ;
  223. }
  224. }
  225. .metronomeBtn {
  226. position: relative;
  227. .speedCon {
  228. transform: scale(0.83);
  229. transform-origin: left bottom;
  230. padding: 2px;
  231. position: absolute;
  232. left: 14px;
  233. top: -9px;
  234. display: flex;
  235. align-items: center;
  236. justify-content: center;
  237. background: #FFC121;
  238. border-radius: 120px 120px 120px 1px;
  239. border: 1px solid #FFFFFF;
  240. >img {
  241. width: 15px;
  242. height: 11px;
  243. }
  244. >div {
  245. margin-left: 1px;
  246. font-weight: 600;
  247. font-size: 12px;
  248. color: #673207;
  249. line-height: 1;
  250. }
  251. }
  252. }
  253. }
  254. .disabled {
  255. pointer-events: none;
  256. opacity: .5;
  257. }
  258. .playBtn {
  259. position: fixed;
  260. right: 30px;
  261. bottom: 12px;
  262. transition: bottom .2s ease;
  263. .btnWrap {
  264. width: 50px;
  265. height: 50px;
  266. .iconBtn {
  267. display: block;
  268. width: 100%;
  269. height: 100%;
  270. }
  271. }
  272. &.playLeftButton {
  273. left: 46px !important;
  274. right: auto !important;
  275. bottom: 12px !important;
  276. }
  277. &.playRightButton {
  278. right: 46px !important;
  279. left: auto !important;
  280. bottom: 12px !important;
  281. }
  282. .progress {
  283. position: absolute;
  284. left: 50%;
  285. top: 50%;
  286. transform: translate(-50%, -50%);
  287. width: 43px;
  288. height: 43px;
  289. }
  290. }
  291. .resetBtn {
  292. position: fixed;
  293. right: 100px;
  294. bottom: 12px;
  295. transition: bottom .2s ease;
  296. .iconBtn {
  297. display: block;
  298. width: 50px;
  299. height: 50px;
  300. }
  301. &.pauseLeftButton {
  302. left: 108px !important;
  303. right: auto !important;
  304. bottom: 12px !important;
  305. }
  306. &.pauseRightButton {
  307. right: 108px !important;
  308. left: auto !important;
  309. bottom: 12px !important;
  310. }
  311. }
  312. :global {
  313. .var-popup {
  314. overflow: hidden;
  315. pointer-events: none;
  316. .var-popup__overlay,
  317. .var-popup__content {
  318. pointer-events: auto;
  319. }
  320. }
  321. }
  322. .pcTransPop {
  323. z-index: 999 !important;
  324. }
  325. .modeView {
  326. position: fixed;
  327. z-index: 10000;
  328. top: 0;
  329. left: 0;
  330. width: 100vw;
  331. height: 100vh;
  332. background: url(./image/bg.png) no-repeat;
  333. background-size: 100% 100%;
  334. transition: all .3s;
  335. &.hidden {
  336. opacity: 0;
  337. transform: translateY(100%);
  338. pointer-events: none;
  339. }
  340. .back {
  341. position: absolute;
  342. width: 38px;
  343. height: 38px;
  344. left: 27px;
  345. top: 17px;
  346. cursor: pointer;
  347. }
  348. .name {
  349. position: absolute;
  350. left: 50%;
  351. top: 23px;
  352. transform: translateX(-50%);
  353. width: 87px;
  354. height: 21px;
  355. }
  356. .modeBox {
  357. width: 100%;
  358. display: flex;
  359. justify-content: space-between;
  360. padding: 0 36px;
  361. position: relative;
  362. top: 50%;
  363. transform: translateY(-50%);
  364. &.twoModeBox {
  365. justify-content: center;
  366. >.modeImg+.modeImg {
  367. margin-left: 150px;
  368. }
  369. }
  370. >.modeImg {
  371. width: calc((100% - 2*40px)/3);
  372. max-width: 220px;
  373. }
  374. }
  375. }
  376. .hiddenPop {
  377. width: 1px;
  378. height: 1px;
  379. overflow: hidden;
  380. opacity: 0;
  381. }
  382. .socketErrorStatus {
  383. top: 20vh;
  384. }