123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- .videoPlayer {
- position: relative;
- width: 100%;
- max-width: 800px;
- margin: 0 auto;
- border-radius: 8px;
- overflow: hidden;
- }
- .video {
- width: 100%;
- display: block;
- }
- .controls {
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- width: 100%;
- height: 100%;
- display: flex;
- flex-direction: column;
- justify-content: flex-end;
- transition: opacity 0.3s ease;
- }
- .controls.hidden {
- opacity: 0;
- }
- .controls.visible {
- opacity: 1;
- }
- .overlay {
- background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
- padding: 20px;
- display: flex;
- flex-direction: column;
- }
- .progressBarContainer {
- width: 100%;
- margin-bottom: 10px;
- }
- .controlsContent {
- display: flex;
- justify-content: space-between;
- align-items: center;
- }
- .leftControls, .rightControls {
- display: flex;
- align-items: center;
- }
- .playPauseButton, .muteButton, .fullscreenButton {
- background: none;
- border: none;
- color: white;
- cursor: pointer;
- padding: 4px;
- margin-right: 10px;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- .playPauseButton:hover, .muteButton:hover, .fullscreenButton:hover {
- background-color: rgba(255, 255, 255, 0.1);
- border-radius: 50%;
- }
- .time {
- color: white;
- font-size: 14px;
- margin-left: 8px;
- }
- .volumeControl {
- display: flex;
- align-items: center;
- margin-right: 16px;
- }
- .volumeSlider {
- width: 60px;
- height: 4px;
- background: rgba(255, 255, 255, 0.3);
- border-radius: 2px;
- cursor: pointer;
- margin-left: 12px;
- position: relative;
- }
- .volumeLevel {
- position: absolute;
- top: 0;
- left: 0;
- height: 100%;
- background: #ffffff;
- border-radius: 2px;
- }
- .progressBar {
- position: relative;
- width: 100%;
- height: 4px;
- background: rgba(255, 255, 255, 0.3);
- cursor: pointer;
- border-radius: 2px;
- overflow: visible;
- transition: height 0.2s ease;
- }
- .progressBar:hover {
- height: 6px;
- }
- .progress {
- height: 100%;
- background: #ffffff;
- transition: width 0.1s ease-in-out;
- }
- .hoverTimeIndicator {
- position: absolute;
- bottom: 100%;
- transform: translateX(-50%);
- background-color: rgba(0, 0, 0, 0.7);
- color: white;
- padding: 4px 8px;
- border-radius: 4px;
- font-size: 12px;
- pointer-events: none;
- white-space: nowrap;
- margin-bottom: 8px;
- }
- .hoverTimeIndicator::after {
- content: '';
- position: absolute;
- top: 100%;
- left: 50%;
- margin-left: -4px;
- border-width: 4px;
- border-style: solid;
- border-color: rgba(0, 0, 0, 0.7) transparent transparent transparent;
- }
- .controls.smallSize .controlsContent {
- justify-content: space-between;
- }
- .controls.smallSize .leftControls,
- .controls.smallSize .rightControls {
- flex: 0 0 auto;
- display: flex;
- align-items: center;
- }
- .controls.smallSize .rightControls {
- justify-content: flex-end;
- }
- .controls.smallSize .progressBarContainer {
- margin-bottom: 4px;
- }
- .controls.smallSize .playPauseButton,
- .controls.smallSize .muteButton,
- .controls.smallSize .fullscreenButton {
- padding: 2px;
- margin-right: 4px;
- }
- .controls.smallSize .playPauseButton svg,
- .controls.smallSize .muteButton svg,
- .controls.smallSize .fullscreenButton svg {
- width: 16px;
- height: 16px;
- }
- .controls.smallSize .muteButton {
- order: -1;
- }
|