slider range vuejs

input range vuejs slider and css

by femfoyou

HTML

<div id="app">
  

<label>
<input type="text" v-model="fontSizeSlider" maxlength="2" class="timer-box-input">
</label>

<button type="button" class="boton" @click="fontSizeSlider --">-</button>  
<button type="button" class="boton" @click="fontSizeSlider ++">+</button>

<input type="range" min="0" max="100" name="fontSize" v-model="fontSizeSlider" :change="increaseFontSize">

<p style="font-size:{{fontSizeSlider}}px">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolorum temporibus, at natus harum magni reiciendis ut dolore voluptatem. Rem tenetur consectetur dolore ut tempore mollitia id. Placeat laudantium culpa cum.</p>


</div>

CSS

/* slider */
input[type=range] {
  -webkit-appearance: none;
  margin: 20px 0 40px;
  width: 100%;
}

input[type=range]:focus {
  outline: none;
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 1px;
  cursor: pointer;
  transition: all 0.5s ease;
  background: #002C54;
  border-radius: 5px;
  border: 0px solid #000101;
}

input[type=range]::-webkit-slider-thumb {
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
  border: 0px solid #000000;
  height: 21px;
  width: 20px;
  border-radius: 10px;
  background: pink;
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -10px;
}

input[type=range]:focus::-webkit-slider-runnable-track {
  background: blue;
}

input[type=range]::-moz-range-track {
  width: 100%;
  height: 1px;
  cursor: pointer;
  animate: 0.2s;
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
  background: #CD7213;
  border-radius: 25px;
  border: 0px solid #000101;
}

input[type=range]::-moz-range-thumb {
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
  border: 0px solid #000000;
  height: 21px;
  width: 20px;
  border-radius: 10px;
  background: cyan;
  cursor: pointer;
}

input[type=range]::-ms-track {
  width: 100%;
  height: 1px;
  cursor: pointer;
  animate: 0.2s;
  background: transparent;
  border-color: transparent;
  border-width: 39px 0;
  color: transparent;
}

input[type=range]::-ms-fill-lower {
  background: #CD7213;
  border: 0px solid #000101;
  border-radius: 50px;
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
}

input[type=range]::-ms-fill-upper {
  background: #CD7213;
  border: 0px solid #000101;
  border-radius: 50px;
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
}

input[type=range]::-ms-thumb {
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
  border: 0px solid #000000;
  height: 21px;
  width: 20px;
  border-radius: 7px;
  background: green;
  cursor: pointer;
}

input[type=range]:focus::-ms-fill-lower {
  background:...

JavaScript

var app = new Vue({
  el: '#app',
  
  data: {
    letra: 0,
  },
})