龙空技术网

CSS+JS做一个酷炫的仪表进度条效果~#前端

小K师兄 213

前言:

如今我们对“js监听input值变化”大约比较注意,姐妹们都想要学习一些“js监听input值变化”的相关文章。那么小编也在网上收集了一些对于“js监听input值变化””的相关内容,希望你们能喜欢,兄弟们一起来了解一下吧!

分享一个很酷炫的视频,通过滑动杆控制仪表进度显示,同时伴有灯光效果,看起来非常震撼。html非常简单,只有几个元素,使用了一个进度条滑动杆的控件。接下来我们重点来看一下CSS,从这里可以看到,页面长什么样子。

好的,现在来说一下滑动杆的样式,这是一个滑轨的样式,其他属性没有什么特别的,我们主要看一下这几个。

首先要自定义进度条的样式,box-shadow:因为这个控件浏览器默认会有一套自己的样式,只有把 shadow设为难才可以自定义模式,如果把这个样式去掉,那整个滑杆其它的样式全部都不起效了。

非常重要的是这两句的设置,这两句有什么用呢?当移动滑块时,大家注意滑轨,在滑块的左边它就会变成蓝色,滑块的右边还是黑色,无论移到什么地方都一样,主要用来控制这一个的。

接下来分析一下这两句,为什么背景这里用了两个颜色?第一个是渐变色,第二个是黑色。最主要的是渐变色里面的这两个颜色还是同一个,lwhite都是这一个变量,说白了它压根没有渐变的效果。

·box-shadow:为什么不直接用这个颜色而要把它搞成渐变?box-shadow:首先用两个颜色,是因为滑轨它就需要两个颜色,滑块的左边是蓝色,滑块的右边是黑色,这两个颜色。之所以会对同一个颜色做渐变,是因为需要配合boxsha一起来使用。

通常background-size是用来设置背景图显示的,对单一颜色是不起作用的。这里用线性渐变就相当于取巧。white用了一个小技巧,因为这里渐变的就是同一个颜色,和单一颜色没有区别,初始值设置为0100%,也就是这一个颜色。渐变的颜色开始是没有显示的,也就是现在这样子。

如果我们把它改一下,改成50%。第一个颜色就会显示到中间位置了,再改成90%,试一下。第一个颜色就会显示到后面了。

→当滑块移动的时候通过JS修改这一个值,是不是就可以动态同步滑轨的颜色状态了?这里先改回0,再看一下这个样式。s inputltype='range:webkit-lips thumb。这是一个滑块的样式,没有什么特别要说的,用的属性都很简单。

主要就来看一下这个伪元素,用这个伪元素就说明要修改的是滑块的样式。仅此而已。

→还有就是滑块的发光效果用的就是阴影,也就是这一个的样式。以下是清除中间显示百分比数字的样式,没有什么特别的,主要是中间发光的效果。后面两个是中间仪表盘的样式,但现在还没有span,需要通过JavaScript创建出来。样式很简单,没有特别的,我们来看看JS。现在已经获取了几个对象来做一个for循环,画出100个指针。我们需要通过JavaScript来创建这些span,因为这些span需要在图形的表盘上分布。这些span需要旋转一定的角度,然后再放入main中。现在表盘应该出来了,没有问题,但是似乎有些拥挤。我们需要修改CSS,将宽度设置为40个TB。将滑动杆向下移动25个TB。现在来看一下效果。现在来处理一下,当移动滑块时,颜色和中间的百分比会随之变化。实际上,这并不难,只需要监听滑杆的输入事件。我们需要修改滑轨的背景大小,只需将其水平方向的where复给百分号即可,而垂直方向则保持100%的宽度。

中间显示的百分比很简单,只需要将值给它就可以了。我们来看一下效果,移动滑块没有问题,滑轨的颜色和上面的百分比都跟着发生变化了。

接下来,我们需要写一个函数,当移动滑块时,改变仪表指针的颜色。我们需要循环所有的指针。当i小于传入的值时,我们需要设置前面一部分指针的颜色和属性。

首先,我们需要设置自定义的颜色bg。我们使用了CSS的色相饱和度函数,后面两个值代表饱和度和亮度,通常设置为100%和50%。这并不重要,我们需要设置色相。我们需要根据不同位置的指针设置不同的色相,这样颜色看起来会更加丰富。另外,我们还需要设置sg的颜色属性。

其他指针使用CSS中设置的黑色背景和透明sg。现在来看一下指针的颜色状态是否发生了变化,移动滑块,没有问题,可以跟着发生变化了。

这个视频到此结束,感谢大家的收看。

标签: #js监听input值变化