input 요소의 range 타입의 값을 다른 요소에 표시하는 샘플 코드

개요


  • <input> 요소의 range 유형 값을 다른 요소에 표시하는 샘플 코드
  • Chrome에서 확인. IE는 움직이지 않는 것 같습니다



  • 코드


    <!DOCTYPE html>
    <html lang="ja">
    <head>
      <script type="text/javascript">
      window.onload = () => {
          // (1)イベントを設定
          for (var element of document.getElementsByClassName('range')) {
              element.addEventListener('input', (event) => {
                  // (2)ソース要素のvalueを次(隣)の要素のinnerHTMLへセット
                  event.srcElement.nextElementSibling.innerHTML = event.srcElement.value;
              });
          }
          // (3)初期表示するためにイベントを起こす
          for (var element of document.getElementsByClassName('range')) {
              element.dispatchEvent(new Event('input'));
          }
      }
      </script>
    </head>
    <body>
      <div>
        <label>range A</label>
        <input type="range" class="range" value="50"><span></span>
      </div>
      <div>
        <label>range B</label>
        <input type="range" class="range" value="50"><span></span>
      </div>
    </body>
    </html>
    

    설명



    html부


  • range 타입의 input 요소를 2개 배치하고 있습니다
  • ( "하나만 대응"과 "둘 이상 대응"은 접근법이 다를 수 있음)

  • input 요소의 다음 (옆)에 값 표시를위한 span 요소를 배치합니다.
  • 샘플을 단순화하기 위해 위치를 결정했습니다


  • script부



    (1) 이벤트 설정


  • range 클래스의 모든 요소에 input 이벤트 리스너를 설정합니다

  • (2) 값 표시


  • (1) 이벤트 처리
  • srcElement는 <input type='range' class='range'>입니다
  • .
  • srcElement의 값 (value)을 srcElement 옆의 요소,이 경우 표시를위한 span 요소로 설정합니다

  • (3) 초기 표시


  • 페이지를로드 할 때 동일한 프로세스를 통해 값을 표시하기 위해 input 이벤트가 발생했습니다.
  • 처리 부분을 잘라서 call 쪽이 좋을지도 모릅니다


  • 링크


  • MDN <input type="range">
  • 좋은 웹페이지 즐겨찾기