본문 바로가기
멀티캠퍼스 풀스택 과정/프론트엔드

프론트엔드3-9. [javascript] window.scroll

by 이쟝 2022. 2. 10.

window 객체의 함수

 

  scroll( )   문서에서 특정 위치로 스크롤
  scrollBy(x,y)   지정한 크기만큼씩 스크롤 
  scrollTo(x,y)   지정한 위치까지 스크롤

 

window 객체의 속성

 

  scrollX   스크롤했을 때 수평으로 이동하는 픽셀 수
  scrollY   스크롤했을 때 수직으로 이동하는 픽셀 수

1. HTML 파일

  • for문을 이용해서 img를 출력한다.(이미지의 숫자가 순서대로여야 한다.
  • <style>태그를 이용해서 배경이미지를 추가한다. 
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>scroll</title>
</head>
<body>
	<script>
		for(var i=1; i<=4; i++) {
		     document.write('<img src="../img/img'+i+'.jpg"/><br/>');
		}
	</script>
</body>
</html>

2. js 구현<script>

  • 페이지를 실행하자마자 현재 스크롤 바의 위치를 구해서 console.log에 출력!
<script>
	function scrollTest() {
		var sX = window.scrollX; 
		var sY = window.scrollY;
		console.log(sX, sY);
		}
	</script>
</head>
<body onload="scrollTest()">
	...
</body>
</html>

 

  • 스크롤이 0.5초 간격으로 움직이는 것을 구현한다. 
<script>
    function scrollAutoMove() {
         // 현재위치를 기준으로 값이 계속 변한다
         window.scrollBy(0,10);  // y(세로만)를 10px씩 움직인다.(세로만 움직임)
}	
</script>
</head>
<body onload="scrollTest(); setInterval('scrollAutoMove()', 500)">
			...
</body>
</html>

 

  • 배경이미지를 움직이게 하기(<style>에서 적용한 body backgroundImg)
<script>
	var x=0, y=0;
	function backMove() {  // 5px 5px하기 위해서 중간에 꼭 띄어쓰기 해야함!
		document.body.style.backgroundPosition = x + "px " + y + "px";  
			x += 5;  // x로 5px씩 움직이기
			y += 5;  // y로 5px씩 움직이기 
	}
</script>
</head>
<body onload="setInterval('backMove()', 500)">
		...
</body>
</html>

 

 

background-position 반복되지 않는 배경 이미지의 상대 위치(왼쪽 위부터 이미지를 출력)

 

background-position

 

left top: 왼쪽 상단 left center: 왼쪽 중앙 left bottom: 왼쪽 맨아래
right top:오른쪽 상단  right center:오른쪽 중앙 right bottom: 오른쪽 맨 아래
center top: 가운데 상단 center (center): 정 가운데 center bottom: 가운데 맨 아래

 

x% y% x는 가로위치, y는 세로 위치
0% 0% left top과 같다.
100% 100% right bottom과 같다. 
만약 한가지만 지정하면 나머지는 50%이다.  cm, px, in(inch), pt(point), px, em(16px*n)등의 단위와 섞어서 지정 가능