【发布时间】:2025-12-04 22:00:01
【问题描述】:
我想创建一个范围滑块,它有一个 div 元素跟随范围拇指。此 div 元素将包含范围输入的当前值。我将如何去做这样的事情?我研究了滑块的样式,但不知道如何将实际元素添加到拇指上。它看起来像这样,请原谅我糟糕的绘图能力:
编辑:以下 div 应在拖动滑块时更新。 更新:我有一个很好的原型,但似乎无法让它完美地跟随滑块。它会偏离中心几个像素,具体取决于它在轨道上的位置。 Heres my codepen
更新代码
HTML
<div id="slider-cntnr">
<input type="range" id="frame-slider" oninput="updateFollowerValue(this.value)"/>
<div id="slider-follow">
<div id="slider-val-cntnr">
<span id="slider-val"></span>
</div>
</div>
</div>
CSS
html, body {
width: 100%;
height: 100%;
}
#slider-cntnr {
width: 50%;
margin: 40px;
position: relative;
}
#frame-slider {
width: 100%;
margin: 0;
}
#slider-follow {
margin-left: -14px;
background-color: black;
width: 30px;
height: 50px;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
}
#slider-val-cntnr {
background-color: white;
width: 25px;
height: 20px;
}
JS
var follower = document.getElementById('slider-follow');
var follower_val = document.getElementById('slider-val');
var slider = document.getElementById('frame-slider');
var updateFollowerValue = function(val) {
follower_val.innerHTML = val;
follower.style.left = val + '%';
};
updateFollowerValue(slider.value);
【问题讨论】:
-
创建一个
<div>,将其设置为position: absolute,并在滑块滑动回调中,更新div的坐标。或者查看滑块缩略图的 HTML,找到一个 CSS 类并使用该类添加到滑块的 HTML。 -
@JohannesJander 您如何使用该类添加到拇指的 html 中?有内容属性?
-
$('.slider-thumb').append('<div>myDiv</div');- 如果slider-thumb是 thumbs CSS 类。 -
那幅画太棒了
标签: javascript html css range uislider