CSS实现自定义滑动条(input),动态监听改变数值

有时候我们需要一个滑杆滑动,可以移动的同时,还能够获取到从小到大的数值,如图:

在这里插入图片描述

向后滑动值越大,能够做到实时监听。我的可能不是最优解决方案,仅供大家参考!

代码如下:

这是建立一个input元素,最小值为0,最大值为100,每次加1,默认值为10.

样式如下:

input[type=“range”] {
display: block;
-webkit-appearance: none;
background-color: #bdc3c7;
width: 150px;
height: 5px;
border-radius: 5px;
margin: 0 auto;
outline: 0;
}
input[type=“range”]::-webkit-slider-thumb {
-webkit-appearance: none;
background-color: #49a9ee;
width: 20px;
height: 20px;
border-radius: 50%;
border: 2px solid white;
cursor: pointer;
transition: 0.3s ease-in-out;
}
input[type=“range”]::-webkit-slider-thumb:hover {
background-color: white;
border: 2px solid #49a9ee;
}
input[type=“range”]::-webkit-slider-thumb:active {
transform: scale(1.6);

}

//js代码监听效果,需要绑定监听事件,代码如下:

var elem = document.querySelector(‘input[type=“range”]’);
//获取一个想显示值的标签,并且初始化默认值
var target = document.querySelector(’.value’);
target.innerHTML = elem.value;

var rangeValue = function(){
var newValue = elem.value;
target.innerHTML = newValue;
}
//绑定input监听事件

elem.addEventListener(“input”, rangeValue);

代码结束!!

https://www.tuwenku.net/ 中的压缩图片文件大小就是用的此例。

现在实现的效果为左小右大,如果要实现左大右小的事件,可以这样写:

最小为-100,最大为0,默认值为-10,

js代码监听效果,需要绑定监听事件,代码如下:

var elem = document.querySelector(‘input[type=“range”]’);
//获取一个想显示值的标签,并且初始化默认值
var target = document.querySelector(’.value’);
target.innerHTML = Math.abs(elem.value);

var rangeValue = function(){
var newValue = Math.abs(elem.value); //把获取到的值转化为正整数,
target.innerHTML = newValue;
}
//绑定input监听事件

elem.addEventListener(“input”, rangeValue);

原理就是把负数转化为正数,则最小值变为最大值,最大值反之,即可实现左小右大的效果.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一种可能的实现方式如下所示: 1. 创建一个包含样式的CSS类或者ID。 ```css .custom-file-input { position: absolute; /* 使文件选择框覆盖在自定义的按钮之上 */ opacity: 0; /* 隐藏默认的文件选择框 */ z-index: -1; /* 避免文件选择框挡住其他内容 */ } .custom-file-label { /* 自定义样式的文件选择文本 */ background-color: #007bff; color: #fff; border-color: #007bff; } .custom-file-label::after { /* 自定义样式的“选择文件”文本 */ content: '选择文件'; display: inline-block; background-color: #28a745; color: #fff; border-radius: 4px; padding: 6px 12px; cursor: pointer; } ``` 2. 在HTML文件中添加一个文件选择框和一个自定义按钮,使用相同的label标签关联它们。 ```html <label class="custom-file-label" for="customFile">选择文件</label> <input type="file" class="custom-file-input" id="customFile"> ``` 3. 使用JavaScript来监听文件选择框的change事件,当用户选择文件后更新自定义文本框的文本。 ```javascript // 获取文件选择框和自定义文本框 const fileInput = document.getElementById('customFile'); const fileLabel = fileInput.nextElementSibling; // 监听文件选择框的change事件 fileInput.addEventListener('change', function(event) { const fileName = event.target.files[0].name; // 更新自定义文本框的文本 fileLabel.innerText = fileName; }); ``` 这样就实现了一个简单的自定义样式的文件选择框。注意,上述实现方式可能不兼容所有浏览器和操作系统,需要进行相应的兼容性测试和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值