input range 4개를 하고 싶어요.

input range 4개를 하고 싶어요.

QA

input range 4개를 하고 싶어요.

답변 1

본문

밑에 코드대로 짜봤는데,

커서를 움직이면 4번째 range Value 값숫자만 변경이되네요.

어떻게 해야 각각 숫자가 움직일까요? ㅠㅠ

 


<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.slidecontainer {
  width: 100%;
}
.slider {
  -webkit-appearance: none;
  width: 100%;
  height: 25px;
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
}
.slider:hover {
  opacity: 1;
}
.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  background: #04AA6D;
  cursor: pointer;
}
.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  background: #04AA6D;
  cursor: pointer;
}
</style>
</head>
<body>
<h1>Custom Range Slider</h1>
<div class="slidecontainer">
  <p>Value: <span id="demo"></span></p>
  <input type="range" min="1" max="100" value="50" id="myRange">
 
  <p>Value: <span id="demo2"></span></p>
  <input type="range" min="1" max="100" value="50" id="myRange2">
  
   <p>Value: <span id="demo3"></span></p>
  <input type="range" min="1" max="100" value="50" id="myRange3">
  
   <p>Value: <span id="demo4"></span></p>
  <input type="range" min="4" max="100" value="50" id="myRange4"> 
  
</div>
<script>
var slider = document.getElementById("myRange");
var output = document.getElementById("demo");
output.innerHTML = slider.value;
slider.oninput = function() {
  output.innerHTML = this.value;
}
</script>
<script>
var slider = document.getElementById("myRange2");
var output = document.getElementById("demo2");
output.innerHTML = slider.value;
slider.oninput = function() {
  output.innerHTML = this.value;
}
</script>
<script>
var slider = document.getElementById("myRange3");
var output = document.getElementById("demo3");
output.innerHTML = slider.value;
slider.oninput = function() {
  output.innerHTML = this.value;
}
</script>
<script>
var slider = document.getElementById("myRange4");
var output = document.getElementById("demo4");
output.innerHTML = slider.value;
slider.oninput = function() {
  output.innerHTML = this.value;
}
</script>
</body>
</html>

이 질문에 댓글 쓰기 :

답변 1


<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.slidecontainer {
  width: 100%;
}
.slider {
  -webkit-appearance: none;
  width: 100%;
  height: 25px;
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
}
.slider:hover {
  opacity: 1;
}
.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  background: #04AA6D;
  cursor: pointer;
}
.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  background: #04AA6D;
  cursor: pointer;
}
</style>
</head>
<body>
<h1>Custom Range Slider</h1>
<div class="slidecontainer">
  <p>Value: <span id="demo"></span></p>
  <input type="range" min="1" max="100" value="50" id="myRange">
 
  <p>Value: <span id="demo2"></span></p>
  <input type="range" min="1" max="100" value="50" id="myRange2">
  
   <p>Value: <span id="demo3"></span></p>
  <input type="range" min="1" max="100" value="50" id="myRange3">
  
   <p>Value: <span id="demo4"></span></p>
  <input type="range" min="4" max="100" value="50" id="myRange4"> 
  
</div>
 
<script>
  function fn_oninput() {
    output = this.previousElementSibling.querySelector('span');
    output.innerHTML = this.value;
  }
  var sliders = document.querySelectorAll('input[type="range"]');
  sliders.forEach((el, i) => {
    fn_oninput.call(el);
    el.oninput = fn_oninput;
  });
</script>
 
</body>
</html>
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로