HTML input[range]组件自定义样式(css,js/jq)

首先 演示:

其次 代码部分

css

[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    outline: 0;
    transition: 0.3s;
    /*以下为自定义非必须*/
      background-size: 98% 3px;
      margin: auto;
      width: 100px;
      outline: none;
      height: 3px;
      margin: 8px;
}

[type="range"]::-webkit-slider-runnable-track {
    -webkit-appearance: none;
    appearance: none;
    height: 5px;
    box-shadow: 0 0 0 3px rgba(255,255,255,0.6);
    border-radius: 5px;
    transition: 0.3s;
}

[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: #3b82f6;
    transform:translateY(-30%);
    border: 1px solid transparent;
    border-image: linear-gradient(#f44336,#f44336) 0 fill / 8 20 8 0 / 0 0 0 99vw;
}

js

var inputRanges = document.querySelectorAll('input[type="range"]');

inputRanges.forEach(function(inputRange) {
  var value = inputRange.value;
  inputRange.style.backgroundImage = 'linear-gradient(to right, #3b82f6 ' + value + '%, #FFF 0)';
});

inputRanges.forEach(function(inputRange) {
  inputRange.addEventListener('input', function() {
    var value = this.value;
    this.style.backgroundImage = 'linear-gradient(to right, #3b82f6 ' + value + '%, #FFF 0)';
  });
});

jq

$('input[type="range"]').each(function() {
  var value = $(this).val();
  $(this).css('background-image', 'linear-gradient(to right, #3b82f6 ' + value + '%, #FFF 0)');
});

$('input[type="range"]').on("input",function() {
  $(this).css('background-image', 'linear-gradient(to right, #3b82f6 ' + $(this).val() + '%, #FFF 0)');
});

js/jq主要用于拖动过后的区域颜色填充

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值