메뉴 건너뛰기

조회 수 7075 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 일반적으로는 a href="#아이디"등과 같이 사용자가 클릭을 해야하는 경우가 있는데, 이러한 경우가 아닌, 자바스크립트로 이동하는 방법을 알아보자. 이러한 경우는 페이지의 bookmark를 등록하거나 할 때 해당 위치로 이동하도록 할 때에 편리할 것이다.


: 먼저 html에 id를 준다.


<div id="bookmark"></div>


: 그리고 해당 element로 이동하고 싶을 때 아래와 같은 자바스크립트를 호출하면 된다.


location.href = "#";
location.href = "#bookmark";

: 이 방법은 아주 쉽게 <a href="#bookmark"> 의 링크/버튼을 누르지 않고 그와 같은 효과를 이끌어낼 수 있다. 하지만 url의 뒤에 #bookmark가 추가되는 불편함(?)이 있을지도 모른다. 사실, url이 그렇게 변하는 것은 미관상(?) 안 좋을수도 있지만, 백스페이스를 누르면 원래의 위치로 가는 것과 즐겨찾기를 하게 되면 해당 위치로 바로 이동이 되는 것이 어떻게 보면 페이지에 따라서는 오히려 UX를 증가시킬 수 있는 면도 있다는 것을 알아두자.


: 만약 이러한 UX적인 이점보다 주소의 미관상(?) 이득이 중요하다면 해당 element의 offset top을 구해서 해당 위치로 이동하는 방법을 사용하면 된다.


function getOffsetTop(el) {
  var top = 0;
  if (el.offsetParent) {
    do {
      top += el.offsetTop;
    } while (el = el.offsetParent);
    return [top];
  }
}
window.scroll(0, getOffsetTop(document.getElementById("bookmark")));


: 스크롤 애니메이션을 넣고 싶은 경우에도 이것을 조금 응용하면 될 것이다. jquery의 스크롤 애니메이션도 결국 이러한 소스가 밑바탕에서 돌아가고 있는 셈이기도 하다.


List of Articles
번호 제목 날짜 조회 수
247 활용예제 : 체크박스 전체선택 전체해제 /라디오버튼 2014.03.01 7020
246 현재시간 기준 날짜 계산 2016.09.21 6103
245 현재 날짜, 시간 ( Month + 1 에 대해서 ) 2021.03.25 218
244 핸드폰 번호 일부 마스킹크 작업 (정규식 이용) 2015.06.19 10740
243 해상도에 따라 배경 바꾸기 2014.03.01 6083
242 함수의 arguments 를 이름(key)으로 접근하기 2016.09.21 5976
241 한글 짜르기 2019.01.16 1178
240 한글 또는 영문만이 존재하는지 체크 2019.01.16 1163
239 풍선도움말 2019.01.16 1167
238 폼안에 태그명, 함수명 같을때 오류 2021.03.26 214
237 페이지 이동 2021.03.26 190
236 페이지 로드 할때 컨트롤에 포커스 주기 2015.02.03 8500
235 패스워드, 확인패스워드가 맞는지 체크 2023.01.12 129
234 팝업창 차단 "허용 메시지" 2018.09.28 1738
233 팝업창 맨위로 올라오게 하기 2021.03.26 848
232 팝업창 가운데 띄우기 2016.12.23 6702
231 특정부위 마우스 오버시 설명을 보여주는 소스 2014.03.17 8690
230 특정 부분 인쇄 자바스크립트 2019.01.16 1579
» 특정 HTML DOM 엘레멘트로 스크롤 이동하기 2016.09.09 7075
228 텍스트박스(input type = "text") 숫자 증가, 감소 시키기 - 쇼핑몰 주문 수량 file 2015.06.19 12272
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved