Ответ 1
1) Так как это кажется ошибкой с Chrome. Вы можете просто взломать его, моделируя отключенный вход, и просто измените событие на onmouseup
, чтобы это работало
/* CSS */
#range {
position: relative
}
#range.disabled .cover {
display: block;
}
#range.disabled input {
color: rgb(82,82,82);
}
.cover {
width: 100%;
height: 100%;
background: transparent;
z-index:5;
position: absolute;
top: -5px;
bottom: 0;
right:0;
left: 0;
display: none;
}
<!-- HTML -->
<label id="range">
<input type="range" min="0" max="5" value="0" id="mySlider" onmouseup="checkMove(this)">
<div class="cover"></div>
</label>
<input type="checkbox" value="one" id="chkBox">
<br/>
<input type="button" id="myButton" value="Click Me" onClick="clickCheck();" />
// JAVASCRIPT
var range = document.getElementById('range');
function checkMove (elem) {
var minVal = elem.value;
console.log(minVal)
if (minVal >= 2) {
range.className = 'disabled';
}
}
Edit:
2) другой способ взломать это, чтобы избежать его динамического отключения, когда возникает ошибка. имеют два элемента range
, один disabled
и один abled
. скрыть отключенный элемент при зеркалировании значения из элемента abled. Если вы хотите отключить элемент, переключите два на основе вашего условия.
этот скрипт, переключатель выключен и не заметен.
<div id="range">
<input type="range" min="0" max="5" value="0" id="mySlider" onchange="checkMove(this)">
<input type="range" disabled min="0" max="5" value="0" id="altSlider">
</div>
// Javascript
var range = document.getElementById('range'),
alt = document.getElementById('altSlider');
function checkMove(elem) {
var minVal = elem.value;
alt.value = minVal;
console.log(minVal)
if (minVal == 2) {
range.className = 'disabled';
}
}
CSS
#range {
position: relative;
display: inline-block;
}
#range.disabled #altSlider {
opacity: initial;
}
#range.disabled #mySlider {
display: none;
}
#altSlider {
opacity: 0;
}
#mySlider {
z-index:5;
position: absolute;
top: 0;
left: 0;
}