主要观点总结
本文介绍了一个用CSS实现的全功能滑动输入器,详细介绍了如何自定义样式、改变滑过区域的颜色、实时显示滑动进度、使tooltip自动跟随滑块、自动跟随拖拽方向等效果的实现过程。
关键观点总结
关键观点1: 自定义input range的样式,通过修改伪元素::-webkit-slider-container、::-webkit-slider-runnable-track、::-webkit-slider-thumb的样式来实现。
通过修改这几个伪元素的样式,可以很轻松的改变轨道的宽高、拖拽手柄的大小等等。
关键观点2: 自定义滑过区域的颜色。
通过滚动驱动动画和CSS变量,实现滑过区域颜色的自定义,并解决了无法获取滑动进度的问题。
关键观点3: 实时显示滑动进度。
利用CSS计数器,实时显示滑动进度,并解决了进度起始点不对的问题。
关键观点4: tooltip自动跟随滑块。
通过CSS变量和计算,使tooltip自动跟随滑块移动,解决了定位偏差的问题。
关键观点5: 自动跟随拖拽方向。
利用滚动驱动动画和CSS变量的差值,实现tooltip自动跟随拖拽方向的效果。
文章预览
现代 CSS 强大的令人难以置信。 这次我们来用 CSS 实现一个全功能的滑动输入器,也就是各大组件库都有的 slider ,效果如下 还可以改变一下样式,像这样 特别是在拖动时, tooltip 还能跟随拖动的方向和速度呈现不同的倾斜角度,这些是如何通过 CSS 实现的呢?一起来看看吧~ 一、自定义input range 首先来看滑动输入器的最原始形态 < input type = " range " > 效果如下 要自定义样式,一般要修改这几个伪元素 ::-webkit-slider-container { /*容器*/ } ::-webkit-slider-runnable-track { /*轨道*/ } ::-webkit-slider-thumb { /*手柄*/ } 这里可以很轻松的改变轨道的宽高,拖拽手柄的大小等等 [ type = "range" ] { -webkit-appearance : none; appearance : none; margin : 0 ; outline : 0 ; background-color : transparent; width : 400 px; overflow : hidden; height : 20 px; } [ type = "range" ] ::-w
………………………………