巧用CSS实现双向进度滑块

1,543 阅读1分钟

双向进度滑块

我们页面一般遇到的是单向的进度滑块,很少遇到双向的滑块。

双向滑块的场景有:左右声道的调节、明暗亮度的调节等,如头图所示。

我们利用 input range 可以实现进度的控制。那么双向可以巧用渐变的障眼法来实现。

主要思路:

如图所示,进度条背景分别为50%蓝色,50%黑色

background: linear-gradient(to left, #000 50%, #69f 50%);

进度条分别为50%黑色,50%蓝色。

background: linear-gradient(to right, #000 150px, #69f 150px); // 本例宽度为300px 

注意,与背景不同的是,进度条的渐变不能写百分比,而是要写成具体的数值,也就是进度条的具体宽度/2

当进度条的宽度小于50%的时候,会露出背景的渐变蓝色,看起来就是向左滑动。 当进度条的宽度大于50%的时候,就会盖住背景的渐变蓝色,露出进度条另一半的蓝色。

线上示例: codepen.io/jianxiujiuc…