소환사쇽쇽
838
2020-02-14 18:13:01
2
186

코드 의미 질문있습니다.


// Save a current position&nbsp;<js-key style="color: rgb(127, 27, 255); font-weight: bold;">in</js-key>&nbsp;global
window.__scrollPosition = document.documentElement.scrollTop || 0;


document.addEventListener('scroll', function() {
  let _documentY = document.documentElement.scrollTop;
  let _direction = _documentY - window.__scrollPosition >= 0 ? 1 : -1;
  console.log(_direction); // 콘솔창에 스크롤 방향을 출력

  window.__scrollPosition = _documentY; // Update scrollY
});

스크롤 방향 확인 하는 예제입니다.

첫째 줄부터 막히는데요.

__scrollPosition은 변수인가요?

window.은 window.onload 같이 window에서 뭔가 불러낼때 쓰던데

__scrollPosition이 그런 종류 같지 않아서요.

문장 모양만 봐선 도큐먼트의 도큐먼트엘리먼트의 탑스크롤 좌표? 같은 것을

 저장할 변수명인것 같은데.

한쪽은 윈도우에서 뭔가를 불러내고 한쪽에서는 뭔가를 대입하려 하고...

어떻게 해석해야 할까요?

그리고 ||0 이것도 처음 보는데 

||는 or아닌가요? if문 같은 곳에서 사용하는.

왜 저기에 있는지 모르겠어요.


0
0
  • 답변 2

  • esrse
    778
    2020-02-14 18:29:27

    __scrollPosition 은 저 코드가 정의한 변수명입니다.

    window 객체는 context를 딱히 지정하지 않는 변수들이 모두 기본적으로 사용하는 객체입니다.

    예를들어서 그냥 asdf = 1234; 라고 값을 대입했다고 치면,

    window.asdf 라고 접근해도 1234가 얻어지는 것을 확인할 수 있습니다.


    (참표현식) || (거짓표현식) 이면, 거짓표현식은 평가되지 않습니다.

    (거짓표현식) || (참표현식)이면 거짓표현식도 평가되고 참표현식도 평가됩니다.

    document.documentElement.scrollTop || 0 은 앞에 표현식이 undefined 로 평가되지 않는다면 그냥 document.documentElement.scrollTop 이 평가결과로 쓰이고, undefined로 평가된다면 0이 평가 결과가 됩니다.

    2
  • 소환사쇽쇽
    838
    2020-02-14 18:35:14

    아 정말 고맙습니다. 기초를 더더 닦아야 겠네요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.