UNPKG

w-ui

Version:

A Vue.js 2.0 UI Toolkit for mobile

459 lines (399 loc) 12.2 kB
@aplayer-height: 66px; @lrc-height: 30px; @aplayer-height-lrc: @aplayer-height + @lrc-height - 6; .aplayer-narrow { width: @aplayer-height; .aplayer-info { display: none; } } .aplayer-withlrc { &.aplayer-narrow { width: @aplayer-height-lrc; } &.aplayer { .aplayer-pic { height: @aplayer-height-lrc; width: @aplayer-height-lrc; } .aplayer-info { margin-left: @aplayer-height-lrc; height: @aplayer-height-lrc; } .aplayer-lrc { display: block; } .aplayer-info { padding: 10px 7px 0 7px; } } } .aplayer-withlist { &.aplayer { .aplayer-info { border-bottom: 1px solid #e9e9e9; } .aplayer-list { display: block; } .aplayer-icon-menu { display: inline !important; } } } .aplayer { font-family: Arial, Helvetica, sans-serif; margin: 5px; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12); border-radius: 2px; overflow: hidden; user-select: none; line-height: initial; * { box-sizing: content-box; } .aplayer-icon { width: 15px; height: 15px; border: none; background-color: transparent; outline: none; cursor: pointer; opacity: .8; vertical-align: middle; padding: 0; font-size: 12px; margin: 0; display: inline; .aplayer-fill { transition: all .2s ease-in-out; } } .aplayer-lrc-content { display: none; } .aplayer-pic { position: relative; float: left; height: @aplayer-height; width: @aplayer-height; background-size: 100%; transition: all 0.3s ease; .aplayer-button { position: absolute; border-radius: 50%; opacity: 0.8; cursor: pointer; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); background: rgba(0, 0, 0, 0.2); transition: all 0.1s ease; &:hover { opacity: 1; } .aplayer-fill { fill: #fff; } } .aplayer-hide { display: none; } .aplayer-play { width: 26px; height: 26px; border: 2px solid #fff; bottom: 50%; right: 50%; margin: 0 -15px -15px 0; .aplayer-icon-play { position: absolute; top: 3px; left: 4px; height: 20px; width: 20px; } } .aplayer-pause { width: 16px; height: 16px; border: 2px solid #fff; bottom: 4px; right: 4px; .aplayer-icon-pause { position: absolute; top: 2px; left: 2px; height: 12px; width: 12px; } } } .aplayer-info { margin-left: @aplayer-height; padding: 14px 7px 0 10px; height: @aplayer-height; box-sizing: border-box; .aplayer-music { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; margin: 0 0 13px 5px; user-select: text; cursor: default; padding-bottom: 2px; .aplayer-title { font-size: 14px; } .aplayer-author { font-size: 12px; color: #666; } } .aplayer-controller { position: relative; display: flex; .aplayer-bar-wrap { margin: 0 0 0 5px; padding: 4px 0; cursor: pointer !important; flex: 1; .aplayer-bar { position: relative; height: 2px; width: 100%; background: #cdcdcd; .aplayer-loaded { position: absolute; left: 0; top: 0; bottom: 0; background: #aaa; height: 2px; transition: all 0.5s ease; } .aplayer-played { position: absolute; left: 0; top: 0; bottom: 0; height: 2px; .aplayer-thumb { position: absolute; top: 0; right: 5px; margin-top: -4px; margin-right: -10px; height: 8px; width: 8px; border-radius: 50%; background: #fff; cursor: pointer !important; } } } } .aplayer-time { position: relative; right: 0; bottom: 3px; height: 17px; color: #999; font-size: 11px; padding-left: 7px; .aplayer-time-inner { vertical-align: middle; } .aplayer-icon { cursor: pointer; transition: all 0.2s ease; .aplayer-fill { fill: #666; } &.aplayer-icon-mode { margin-right: 4px; } &:hover { .aplayer-fill { fill: #000; } } &.aplayer-icon-menu { display: none; } } &.aplayer-time-narrow { .aplayer-icon-mode { display: none; } .aplayer-icon-menu { display: none; } } } .aplayer-volume-wrap { position: relative; display: inline-block; margin-left: 3px; cursor: pointer !important; &:hover .aplayer-volume-bar-wrap { display: block; } .aplayer-volume-bar-wrap { display: none; position: absolute; bottom: 15px; right: -3px; width: 25px; height: 40px; z-index: 99; .aplayer-volume-bar { position: absolute; bottom: 0; right: 10px; width: 5px; height: 35px; background: #aaa; .aplayer-volume { position: absolute; bottom: 0; right: 0; width: 5px; transition: all 0.1s ease; } } } } } } .aplayer-lrc { display: none; position: relative; height: @lrc-height; text-align: center; overflow: hidden; margin: -10px 0 7px; &:before { position: absolute; top: 0; z-index: 1; display: block; overflow: hidden; width: 100%; height: 10%; content: ' '; background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%); background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=0 ); } &:after { position: absolute; bottom: 0; z-index: 1; display: block; overflow: hidden; width: 100%; height: 33%; content: ' '; background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 100%); background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,0.8) 100%); background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,0.8) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ccffffff',GradientType=0 ); } p { font-size: 12px; color: #666; line-height: 16px !important; height: 16px !important; padding: 0 !important; margin: 0 !important; transition: all 0.5s ease-out; opacity: 0.4; overflow: hidden; &.aplayer-lrc-current { opacity: 1; overflow: visible; height: initial !important; } } .aplayer-lrc-contents { width: 100%; transition: all 0.5s ease-out; user-select: text; cursor: default; } } .aplayer-list { overflow: auto; transition: all 0.5s ease; will-change: height; display: none; &.aplayer-list-hide { height: 0 !important; } &::-webkit-scrollbar{ width: 5px; } &::-webkit-scrollbar-track{ background-color: #f9f9f9; } &::-webkit-scrollbar-thumb{ border-radius: 3px; background-color: #eee; } &::-webkit-scrollbar-thumb:hover{ background-color: #ccc; } ol { list-style-type: none; margin: 0; padding: 0; li { position: relative; height: 32px; line-height: 32px; padding: 0 15px; font-size: 12px; border-top: 1px solid #e9e9e9; cursor: pointer; transition: all 0.2s ease; overflow: hidden; &:first-child { border-top: none; } &:hover { background: #efefef; } &.aplayer-list-light { background: #e9e9e9; .aplayer-list-cur { display: inline-block; } } .aplayer-list-cur { display: none; width: 3px; height: 22px; position: absolute; left: 0; top: 5px; cursor: pointer; } .aplayer-list-index { color: #666; margin-right: 12px; cursor: pointer; } .aplayer-list-author { color: #666; float: right; cursor: pointer; } } } } } @keyframes aplayer-roll { 0%{left:0} 100%{left: -100%} }