Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM WheelEvent deltaY 속성 – 마우스 휠 스크롤 방향 감지하기

HTML DOM의 WheelEvent deltaY 속성은 사용자가 마우스 휠을 어느 방향으로 스크롤했는지에 따라 부호가 있는 숫자(signed number)를 반환합니다. 사용자가 아래로 스크롤하면 양수, 위로 스크롤하면 음수가 반환되며, 가로 방향 등 다른 방향으로 스크롤하는 경우에는 0이 반환됩니다.

구문(Syntax)

다음은 deltaY 속성의 기본 구문입니다 −

부호가 있는 숫자 반환하기

event.deltaY

반환값 정리

  • 양수(+): 사용자가 아래 방향으로 스크롤한 경우
  • 음수(−): 사용자가 위 방향으로 스크롤한 경우
  • 0: 세로 방향이 아닌 다른 방향으로 스크롤한 경우

참고로 같은 이벤트 객체에는 가로 스크롤 값을 나타내는 deltaX, 그리고 Z축(핀치 줌 등) 값을 나타내는 deltaZ 속성도 함께 제공됩니다.

예제

HTML DOM WheelEvent deltaY 속성의 실제 동작을 확인할 수 있는 예제를 살펴보겠습니다 −

<!DOCTYPE html>
<html>
<head>
<title>HTML DOM WheelEvent deltaY</title>
<style>
    * {
        padding: 2px;
        margin:5px;
    }
    form {
        width:70%;
        margin: 0 auto;
        text-align: center;
    }
    input[type="button"] {
        border-radius: 10px;
    }
    #content {
        width: 80px;
        height: 80px;
        margin: 20px 0 0 50px;
        background-color: #dc3545;
        transition: all 2s ease-in-out;
    }
</style>
</head>
<body>
    <form>
        <fieldset>
            <legend>HTML-DOM-WheelEvent-deltaY</legend>
            <div id="content" onwheel="setControls(event)"></div>
            <input type="button" value="reset" onclick="resetCSS()">
            <div id="divDisplay">Scroll over div element</div>
        </fieldset>
    </form>
    <script>
    var playDiv = document.getElementById("content");
    var count = 40;
    function setControls(event) {
        var valX = event.deltaX;
        var valY = event.deltaY;
            if(valY>0){
                playDiv.style.transform = "scale(0.5)";
                playDiv.style.backgroundColor = "rgba(0, 188, 212, 0.47)";
                playDiv.style.borderRadius = "50%";
            }
            else if(valY<0){
                playDiv.style.transform = "scale(1.5)";
                playDiv.style.backgroundColor = "rgba(0, 188, 0, 0.47)";
                playDiv.style.borderRadius = "0px";
            }
            else if(valX>0){
                count+=40;
                playDiv.style.transform = "translateX("+count+"px)";
            }
            else{
                count-=40;
                playDiv.style.transform = "translateX("+count+"px)";
            }
        }
        function resetCSS(){
            count = 40;
            var st = "width: 80px;height: 80px;margin: 20px 0 0 50px;background-color:
            #dc3545;transition: all 2s ease-in-out;";
            playDiv.style = st;
        }
    </script>
</body>
</html>

출력 결과

div 요소를 아래 방향으로 스크롤한 경우 − 요소가 축소되고 색상과 모서리가 변경됩니다.

HTML DOM WheelEvent deltaY 속성 – 마우스 휠 스크롤 방향 감지하기

div 요소를 위 방향으로 스크롤한 경우 − 요소가 확대되고 배경색과 모서리가 변경됩니다.

HTML DOM WheelEvent deltaY 속성 – 마우스 휠 스크롤 방향 감지하기

reset 버튼을 클릭한 경우 − 요소가 초기 상태로 복원됩니다.

HTML DOM WheelEvent deltaY 속성 – 마우스 휠 스크롤 방향 감지하기