最近公司的一些项目需要,对input的新类型range进行了一番的使用,主要是针对它的样式进行了重新的改写。达到下面的这种需求,我移动range上面的小球,它会随着我的移动而改变它的值,如图:
开始的位置移动过程中
可能网上也有很多这样的例子,但是我还是把我的分享一下,代码简单的很,只需要选择节点就可以了。代码如下:
css部分:
input[type=range]{
margin-top: 8px;
outline: none;
-webkit-appearance: none;/*清除系统默认样式*/
width:56% !important;
background: -webkit-linear-gradient(#61bd12, #61bd12) no-repeat, #ddd;
background-size: 30% 100%;/*设置左右宽度比例*/
height: 3px;/*横条的高度*/
}
/*拖动块的样式*/
input[type=range]::-webkit-slider-thumb {
-webkit-appearance: none;/*清除系统默认样式*/
height:16px;/*拖动块高度*/
width: 16px;/*拖动块宽度*/
background: #fff;/*拖动块背景*/
border-radius: 50%; /*外观设置为圆形*/
border: solid 1px #ddd; /*设置边框*/
}
HTML部分:
<div class="an_speed after_clear">
<span>速度:</span>
<input type="range" name="range_speed" id="range_speed" value="30" οninput="changeSpeed()" />
<span id="value1">3.0</span>秒
</div>
JavaScript部分:这里我引入了jQuery,大家可以自己去网上找一份引入。
<script type="text/javascript">
function changeSpeed() {
var value = $('#range_speed').val();
var valStr = value + "% 100%";
$('#value1').html((value / 10).toFixed(1));
$('#range_speed').css({
"background-size": valStr
})
$("input[name='animat_speed']").val((value / 10).toFixed(1));
};
</script>
这样就可以达到我上面的效果,供大家参考.....