我有一个视频元素,我想创建自己的控制播放器.
我正在使用搜索栏的范围输入.我想这样做的样式:
所以橙色就是你所看到的,而蓝绿色则是剩下的时间.
我设法像这样输入样式:https://jsfiddle.net/d3oeztwt/但我不知道橙色.
我知道我可以使用进度条,但我找不到用进度条触发滑块的方法.
<input type="range"> input[type=range] { /*removes default webkit styles*/ -webkit-appearance: none; /*required for proper track sizing in FF*/ width: 300px; } input[type=range]::-webkit-slider-runnable-track { width: 300px; height: 10px; background: #009999; border: none; border-radius: 3px; } input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; border: none; height: 20px; width: 20px; border-radius: 50%; background: #99FFFF; margin-top: -4px; } input[type=range]:focus { outline: none; }
解决方法
我用SCSS做了一个跨浏览器的解决方案(ie9,ff,chrome,safari),没有JavaScript.
http://codepen.io/nlfonseca/pen/MwbovQ
@import 'bourbon'; $slider-width-number: 240; $slider-width: #{$slider-width-number}px; $slider-height: 2px; $background-slider: #c7c7c7; $background-filled-slider: #e33d44; $thumb-width: 28px; $thumb-height: 18px; $thumb-radius: 8px; $thumb-background: #fff; $thumb-border: 1px solid #777; $shadow-size: -8px; $fit-thumb-in-slider: -8px; @function makelongshadow($color,$size) { $val: 5px 0 0 $size $color; @for $i from 6 through $slider-width-number { $val: #{$val},#{$i}px 0 0 $size #{$color}; } @return $val; } div { height: 100px; display: flex; justify-content: center; } input { align-items: center; appearance: none; background: none; cursor: pointer; display: flex; height: 100%; min-height: 50px; overflow: hidden; width: $slider-width; &:focus { Box-shadow: none; outline: none; } &::-webkit-slider-runnable-track { background: $background-filled-slider; content: ''; height: $slider-height; pointer-events: none; } &::-webkit-slider-thumb { @include size($thumb-width $thumb-height); appearance: none; background: $thumb-background; border-radius: $thumb-radius; Box-shadow: makelongshadow($background-slider,$shadow-size); margin-top: $fit-thumb-in-slider; border: $thumb-border; } &::-moz-range-track { width: $slider-width; height: $slider-height; } &::-moz-range-thumb { @include size($thumb-width $thumb-height); background: $thumb-background; border-radius: $thumb-radius; border: $thumb-border; position: relative; } &::-moz-range-progress { height: $slider-height; background: $background-filled-slider; border: 0; margin-top: 0; } &::-ms-track { background: transparent; border: 0; border-color: transparent; border-radius: 0; border-width: 0; color: transparent; height: $slider-height; margin-top: 10px; width: $slider-width; } &::-ms-thumb { @include size($thumb-width $thumb-height); background: $thumb-background; border-radius: $thumb-radius; border: $thumb-border; } &::-ms-fill-lower { background: $background-filled-slider; border-radius: 0; } &::-ms-fill-upper { background: $background-slider; border-radius: 0; } &::-ms-tooltip { display: none; } }