• 회원가입
  • 로그인
  • 구글아이디로 로그인

[DOM_Event] JS - scroll 이벤트 (= onscroll 속성) ★ - 스크롤이벤트

목차
  1. scroll 예제 - 스크롤 횟수
  2. scroll 정의
  3. scroll 구문
  4. scroll 예제 - 스크롤 스타일 변경

 

scroll 예제 - 스크롤 횟수

 

<style>

#hz {

  border: 1px solid silver;

  width: 300px;

  height: 100px;

  overflow: scroll;

}

#hz p {width:750px ; height:300px;}

</style>


<div id="hz" onscroll="homzzang()"><p>홈짱닷컴 Homzzang.com<p></div>

<p>Scroll 횟수 : <span id="demo">0</span></p>


<script>

var x = 0;

function homzzang() {

  document.getElementById("demo").innerHTML = x += 1;

}

</script>

 

결과보기

 

scroll 정의

 

요소 (가로・세로) 스크롤막대가 스크롤될 때 이벤트 발생

 


 

1.

CSS overflow 속성 이용해 스크롤막대 생성.

 

2.

주요 최신 브라우저 모두 지원.

 

3.

  • 이벤트확산 : X
  • 취소가능성 : X
  • 이벤트타입 : 사용자 인터페이스에서 생성되면 UiEvent, 그렇지 않으면 Event.
  • 지원 HTML : <address>, <blockquote>, <body>, <caption>, <center>, <dd>, <dir>, <div>, <dl>, <dt>, <fieldset>, <form>, <h1> to <h6>, <html>, <li>, <menu>, <object>, <ol>, <p>, <pre>, <select>, <tbody>, <textarea>, <tfoot>, <thead>, <ul>
  • DOM 버전 : Level 2 Events

 

 

scroll 구문 

 

[HTML 속성 이용 방식]

<element onscroll="homzzang()">

 

[JS 속성 이용 방식]

object.onscroll = function(){homzzang()};

 

[JS 메서드 이용 방식]

object.addEventListener("scroll", homzzang);

 


PS.

 

※ homzzang : 실행함수명.


※ addEventLister() 방식 주의사항 2가지

ⓘ 이벤트명에 on 안 붙임.  

② 실행함수명 뒤에 소괄호 안 붙임.


※ addEventListener() 메서드는 IE8 이하 브라우저는 지원 X.

 


scroll 예제 - 스크롤 스타일 변경

[방법1] - 클래스 추가/제거

 

<style>

body {height: 1000px;}

#hz {position: fixed}

.hz_style {font-size:30px; background-color: yellow;}

</style>


<body>  

  <p id="hz">홈짱닷컴 Homzzang.com</p>


  <script>

  window.onscroll = function() {homzzang()};


  function homzzang() {

    if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {

       document.getElementById("hz").className = "hz_style";

    } else {

       document.getElementById("hz").className = "";

    }

  }

  </script>  

</body>

 

결과보기


[방법2] - 스타일 속성 개별 변경

 

<style>

body {overflow: scroll; height: 1000px; position:relative}    

.hz {position:absolute; top:300px; border:1px solid black; margin: 0 auto; width: 0px;height: 0px; display:none;}

</style>


<body onload="scrollDetect()">

    <div class="hz">홈짱닷컴 Homzzang.com</div>


    <script>

        function scrollDetect() {

            let div = document.querySelector('.hz')

            var lastScroll = 0;

            window.onscroll = function () {

                let currentScroll = document.documentElement.scrollTop; // Get Current Scroll Value

                if (currentScroll > 0 && lastScroll <= currentScroll) {

                    lastScroll = currentScroll;

                    div.style.width = '80%'

                    div.style.height = "100px";

                    div.style.background = "red";

                    div.style.position = "absolute";

                    div.style.top = "300";

                    div.style.left = "0";

                    div.style.display = "block";

                } else {

                    lastScroll = currentScroll;

                    div.style.display = "none";

                }

            };

        }

    </script>

</body>

 

결과보기



분류 제목
DOM_Event JS - Event 종류 ★ - 이벤트부착 / 이벤트종류 / 이벤트속성 / 이벤트메서드
DOM_Event JS - abort 이벤트 (= onabort 속성) - 미디어로드중단 (= 온어보트이벤트, IE9)
DOM_Event JS - afterprint 이벤트 (= onafterprint 속성) - 인쇄모드이벤트 (= 인쇄시작 / …
DOM_Event JS - animationend 이벤트 (= onanimationend 속성) - 애니완료이벤트 (= 애니종…
DOM_Event JS - animationiteration 이벤트 (= onanimationiteration 속성) - CS…
DOM_Event JS - animationstart 이벤트 (= onanimationstart 속성) - CSS 애니메인션 …
DOM_Event JS - beforeprint 이벤트 (= onbeforeprint 속성) - 인쇄모드 인쇄대화상자 나타나기…
DOM_Event JS - beforeunload 이벤트 (= onbeforeunload 속성) - 웹문서 언로드 (= 사이트…
DOM_Event JS - blur 이벤트 (= onblur 속성) - 포커스제거이벤트 (= 포커스해제이벤트 = 블러이벤트)
DOM_Event JS - canplay 이벤트 (= oncanplay 속성) - 동영상재생가능 (= 비디오재생가능/오디오재생…
DOM_Event JS - canplaythrough 이벤트 (= oncanplaythrough 속성) - 버퍼링중지없이 재생…
DOM_Event JS - change 이벤트 (= onchange 속성) ★ - 요소값변경이벤트 (= 체인지이벤트 = 온체인…
DOM_Event JS - click 이벤트 (= onclick속성 = 온클릭이벤트) ★ - 마우스클릭이벤트
DOM_Event JS - contextmenu 이벤트 (oncontextmenu 속성) - 마우스오른쪽메뉴선택 (= 컨텍스트…
DOM_Event JS - copy 이벤트 (= oncopy 속성) - 복사이벤트 (= copy이벤트 = 카피이벤트) ※ 복사…
DOM_Event JS - cut 이벤트 (= oncut 속성) - 잘라내기이벤트 (= 컷이벤트)
DOM_Event JS - dblclick 이벤트 (= ondblclick 속성) ★ - 마우스더블클릭이벤트
DOM_Event JS - drag 이벤트 (= ondrag 속성) - 마우스드래그이벤트 (IE9) ※ 드래그앤드롭
DOM_Event JS - dragend 이벤트 (= ondragend 속성) - 마우스드래그종료 (IE9)
DOM_Event JS - dragenter 이벤트 (= ondragenter 속성) - 드래그진입 (= 드래그엔터이벤트)
1/9
목록
찾아주셔서 감사합니다. Since 2012