Range от min до max

292
17 января 2018, 15:00

Как можно реализовать подобный range без jquery и др. библиотек, на нативном JS?

Answer 1

Можете попробовать через HTML5:

https://codepen.io/anon/pen/godKwW

<input type="range" min="0" max="100" id="line" 
    oninput="testMy()" value="0">
<div id="my">0 %</div>
function testMy() {
line = document.getElementById("line").value;
my = document.getElementById("my");
my.innerHTML =line+ "%";
}
body {
    padding: 30px;
}
input[type=range] {
    /*removes default webkit styles*/
    -webkit-appearance: none;
    /*fix for FF unable to apply focus style bug */

    /*required for proper track sizing in FF*/
    width: 300px;
}
input[type=range]::-webkit-slider-runnable-track {
    width: 300px;
    height: 5px;
    background: #ddd;
    border: none;
    border-radius: 3px;
}
input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none;
    border: none;
    height: 16px;
    width: 16px;
    border-radius: 50%;
    background: red;
    margin-top: -4px;
}
input[type=range]:focus {
    outline: none;
}
input[type=range]:focus::-webkit-slider-runnable-track {
    background: #ccc;
}
input[type=range]::-moz-range-track {
    width: 300px;
    height: 1px;
    background: #ddd;
    border: none;
    border-radius: 3px;
}
input[type=range]::-moz-range-thumb {
    border: none;
    height: 16px;
    width: 16px;
    border-radius: 50%;
    background: red;
}
/*hide the outline behind the border*/
input[type=range]:-moz-focusring{
    outline: 1px solid white;
    outline-offset: -1px;
}
input[type=range]::-ms-track {
    width: 300px;
    height: 1px;
    /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */
    background: transparent;
    /*leave room for the larger thumb to overflow with a transparent border */
    border-color: transparent;
    border-width: 6px 0;
    /*remove default tick marks*/
    color: transparent;
}
input[type=range]::-ms-fill-lower {
    background: #777;
    border-radius: 10px;
}
input[type=range]::-ms-fill-upper {
    background: #ddd;
    border-radius: 10px;
}
input[type=range]::-ms-thumb {
    border: none;
    height: 16px;
    width: 16px;
    border-radius: 50%;
    background: red;
}
input[type=range]:focus::-ms-fill-lower {
    background: #888;
}
input[type=range]:focus::-ms-fill-upper {
    background: #ccc;
}
READ ALSO
Подергивания в CSS анимации

Подергивания в CSS анимации

Почему анимация дергается (вверх поднимается рывками)?

515
Внешний ключ по двум полям

Внешний ключ по двум полям

Есть три таблицы

364
Структура таблиц в БД для журнала оценок

Структура таблиц в БД для журнала оценок

Есть таблица с студентамиУ каждого студента есть определенный маркер(оценка) для данного предмета в каком-то дне недели

290
Как Entity Framework реализует Identity Map?

Как Entity Framework реализует Identity Map?

Предположим я отправляю запрос к базе данных и получаю 1000 объектов, если я отправлю этот запрос еще раз используя тот же объект DbContext, то я получу...

360