#backtotop{/* id 호출은 #으로 */background-color:rgb(47,48,89);width:40px;height:40px;text-align:center;border-radius:20px;/* 정사각형인 박스의 border-radius를 중간값을 적용해주면 원이 된다. 여기서는 20px */position:fixed;/* 고정해야 하며 따라서 아래의 위치값이 필요함 */bottom:30px;right:30px;transition-property:background-color,opacity,visibility;/* 약간의 움직임 효과를 주기 위함 */transition-duration:0.3s,0.5s,0.5s;opacity:0;/* 투명도를 0으로 */visibility:hidden;/* 맨처음에는 안보이게끔한다. */z-index:999;/* 이 박스(아이콘)가 보여지게 되면 최상단에 보여져야 한다는 의미로 999 적용 */}/* 아이콘을 만들고자 할 때 적용 방법
1. ::after (요소 뒤에 content 추가) 가상 요소에서,
2. content: "폰트어썸 유니코드" 를 넣고,
3. font-family: FontAwesome 이라고 넣으면 됨
*/#backtotop::after{/* 즉 위에 정의한 backtotop의 뒤에 적용할 가상 요소라는 의미임 */content:"\f077";/* 폰트어썸 유니코드를 넣을때 앞에 역슬래쉬[\]를 꼭 넣어줘야 한다. */font-family:FontAwesome;font-size:1.5rem;line-height:40px;/* 아이콘을 중간에 놓으려면 line-height를 backtotop의 height값과 동일하게 적용 시 수직 정렬됨 */color:#fff;}#backtotop.show:hover{cursor:pointer;/* 커서를 손모양으로 바꾸기 */background-color:#2186c4;/* 컬러를 바꾸기 */}#backtotop.show{opacity:1;/* 불투명 100%로 backtotop이 보여진다 */visibility:visible;/* 보이게한다. */background-color:rgb(47,48,49);}
backtotop 아이콘은 화면이 가장 상단으로 올라와 있는 경우에는 화면에서 보여질 필요가 없고 스크롤 다운이 된 경우에 보여지게끔 기능을 구현한다. 또한 클릭 시 화면은 최상단으로 이동되어져야 되고 아이콘은 사라져야 한다. 이러한 기능을 구현하기 위해서는 자바스크립트를 사용해야 한다. js 폴더 內 main.js를 생성하고 아래와 같이 작성한다.
constbackToTop=document.getElementById('backtotop');// 아래 내용은 화면의 위치가 최상단인지 아닌지를 파악하여 상단이면 아이콘이 안보이게 상단이 아니면 아이콘이 보이게 하는 기능 구현functioncheckScroll(){// 함수가 2개 이상의 호출이 발생 할 경우 이렇게 선언하는게 더 쉽게 구분이 가능 // const checkScroll = () => {/*
웹페이지가 수직으로 얼마나 스크롤되었는지를 확인하는 값(픽셀 단위로 반환)
https://developer.mozilla.org/ko/docs/Web/API/Window/pageYOffset
*/letpageYOffset=window.pageYOffset;if(pageYOffset!==0){//스크롤값이 0이 아니면(최상단이 아닌 스크롤이 내려가 있는 경우를 의미)backToTop.classList.add('show');// backToTop에 show 라는 class를 추가하라는 의미이며 show 세팅은 css에서 이미 해놓음}else{//스크롤값이 0이면(최상단을 의미)backToTop.classList.remove('show');// show 클래스를 삭제하라는 의미로 보여졌던 아이콘이 사라지게 한다.}}// 아래 내용은 중간이나 하단에 스크롤이 위치하다가 아이콘을 눌렀을 때 상단으로 이동시키는 기능 구현functionmoveBackToTop(){// 함수가 2개 이상의 호출이 발생 할 경우 이렇게 선언하는게 더 쉽게 구분이 가능 // const moveBackToTop = () => {if(window.pageYOffset>0){// pageYOffset이 0보다 크다는 의미는 스크롤바가 조금이라도 하단으로 내려가 있는 상태를 의미/*
smooth 하게 스크롤하기
https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTo
*/window.scrollTo({top:0,behavior:"smooth"})// top은 최상단으로, smooth는 부드럽게 작용하라는 의미}}window.addEventListener('scroll',checkScroll);backToTop.addEventListener('click',moveBackToTop);
크롬 브라우저에서 개발자도구[f12]를 열어 source를 클릭하고 왼쪽 page에서 main.js를 누르면 자바스크립트 화면이 보여진다. 이 화면은 디버깅을 해 줄 수 있는 화면이고 해당 문장번호 옆을 클릭하여 breaking point를 설정해서 그 부분까지 작동시킬수 있고 또한 관계된 변수값 등을 출력 및 확인해볼 수 있다.
댓글남기기