我已经实现了一个范围滑块,它使用该值从数组中获取元素并显示该元素,而不是显示范围值。它适用于Chrome和Firefox但不适用于IE 11 - 当滑块移动时,该值不会获得更新的元素。
HTML:
<div id="yearSlider" style="z-index:2;">
<form>
<div align="center">
<input
type="range"
min=1
max=10
value=0
id="fader"
step=1
oninput="outputUpdate(years[value])"
>
<output for=fader id=volume>1908</output>
</div>
</form>
使用Javascript:
var years = [0,1908, 1910, 1912, 1915, 1920, 1935, 1949, 1982, 2005, 2015];
function outputUpdate(vol) {
document.querySelector('#volume').value = vol;
}
通过搜索,我发现这与如何&#34; oninput&#34;在IE中工作(或不工作)。
我尝试合并here
的解决方案<input
type="range"
min="5"
max="10"
step="1"
oninput="showVal(this.value)"
onchange="showVal(this.value)"
>
但它仍然没有更新。
我的jsfiddle
答案 0 :(得分:1)
您可以使用以下代码获取滑块:
<body>
<div id="yearSlider" style="z-index:2;">
<form>
<div align="center">
<input
type="range"
min=1
max=10
value=0
id="fader"
step=1
onchange="outputUpdate(value)"
>
<span for=fader id=volume>1908</span>
</div>
</form>
</div>
<script>
var years = [0,1908, 1910, 1912, 1915, 1920, 1935, 1949, 1982, 2005, 2015];
function outputUpdate(vol) {
document.getElementById('volume').innerHTML=years[vol];
}
</script>