Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

html input range thumb smooth movement

I have an HTML input range set up with a bunch of CSS changes to the appearance, and I was wondering if there was any way to make it smoothly change from wherever it is to where the user changes?

input[type=range] {
        -webkit-appearance: none;
        width: 100%;
        height: 20px;
        border-radius: 5px;
        border: 1px solid;
        background: none;
        box-shadow: 0px 0px 8px 0px #555, 0px 0px 25px 0px #555 inset;
        transition: 0.4s all ease-out;
        outline: none;
    }

    input[type=range]::-webkit-slider-thumb {
        -webkit-appearance: none;
        width: 30px;
        height: 30px;
        background-color: #CCC;
        border: solid 1px #333;
        border-radius: 4px;
        box-shadow: 0px 0px 8px 0px #555, 0px 0px 25px 0px #555 inset;
        cursor: pointer;
        transition: 0.4s all ease-out;
    }

    input[type=range]:hover {
        background: rgba(255, 255, 255, 0.2);
        box-shadow: 0px 0px 13px 0px #444, 0px 0px 20px 0px #444 inset;
    }

    input[type=range]:hover::-webkit-slider-thumb {
        border: solid 1px #444;
        box-shadow: 0px 0px 15px 0px #444, 0px 0px 20px 0px #444 inset;
    }

    input[type=range]:focus {
        background: rgba(255, 255, 255, 0.4);
        box-shadow: 0px 0px 18px 0px #333, 0px 0px 15px 0px #333 inset;
    }

    input[type=range]:focus::-webkit-slider-thumb {
        border: solid 1px #333;
        box-shadow: 0px 0px 22px 0px #333, 0px 0px 15px 0px #333 inset;
    }
<input type="range" id="brightness_slider" value="90" step="1" min="30" max="100">
like image 424
Philip Eagles Avatar asked Nov 05 '16 17:11

Philip Eagles


1 Answers

These are the things that affect the smoothness:

  1. The width of the banner
  2. The min/max range
  3. The size of steps

So if you have:

  1. 1000px wide range input
  2. 0 - 1000 range
  3. Step size of 1

Each step will be just 1px, and it will be quite smooth.

If you have:

  1. 1000px wide range input
  2. 0 -100 range
  3. Step size of 25

It will snap between the allowable values, appearing less fluid.

This is really a feature of the interaction between your step size and your range, and provides useful feedback to the user on what values are acceptable.

like image 102
Fenton Avatar answered Oct 21 '22 06:10

Fenton