タイプ範囲の入力のバーをカスタマイズしようとしていますが、何らかの理由でbackgroundImageが設定されていません。私がやっている何バニラの要素にスタイルを動的に追加するjsが機能しない
:
var age = document.querySelector('#age');
var ageResult = document.querySelector('#age-result');
ageResult.textContent = age.value;
age.addEventListener('change', function(event) {
var value = (event.target.value - event.target.min)/(event.target.max - event.target.min);
this.style.backgroundImage = '-webkit-gradient(linear, left top, right top, '
+ 'color-stop(' + value + ', #e8972c), '
+ 'color-stop(' + value + ', #e6e6e6) '
+ ')';
if (event.target.tagName === 'INPUT') {
ageResult.textContent = event.target.value;
}
})
をここでは、コードスニペットです:
var age = document.querySelector('#age');
age.addEventListener('change', function(event) {
var value = (event.target.value - event.target.min)/(event.target.max - event.target.min);
this.style.backgroundImage = '-webkit-gradient(linear, left top, right top, '
+ 'color-stop(' + value + ', #e8972c), '
+ 'color-stop(' + value + ', #e6e6e6) '
+ ')';
})
input[type=range]{
\t -webkit-appearance: none;
\t /* fix for FF unable to apply focus style bug */
\t border: 1px solid white;
}
input[type=range]:focus {
\t outline: none;
}
input[type=range]:focus::-webkit-slider-runnable-track {
\t background: #ccc;
}
input[type=range]::-webkit-slider-thumb {
\t -webkit-appearance: none;
\t border: none;
\t height: 30px;
\t width: 30px;
\t border-radius: 50%;
\t background: #ffffff;
\t margin-top: -11px;
\t background-image: linear-gradient(rgba(255,255,255,0),rgba(0,0,0,0.1));
\t box-shadow: 0 0 8px rgba(0,0,0,0.3);
}
input[type=range]::-webkit-slider-runnable-track {
\t height: 10px;
\t background: #dddddd;
\t border: none;
\t border-radius: 3px;
}
<input type="range" name="age" id="age" min="14" max="70" value="31">
あなたは私が間違っているのかを見ることができますか?なぜstyle.backgroundImageが設定されていないのですか?私はデバッグし、それがその行の直後に空であることを見た。
私はこの場合はできません。ユーザーが範囲を変更している間にバーをカスタマイズする必要があるため、backgroundImageの値を動的に計算しています – Periback
なぜ設定されていないのでしょうか? – Periback
私はちょうど私が間違っていたことを知りました。 – Periback