• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

스크롤 다루기 응용방법

21.08.08 23:28 작성 조회수 186

0

안녕하세요 쌤~

이 강의의 응용버전으로

스크롤을 내릴 때마다 element를 움직이게 하는 거는 어떻게 구현하는지 간단하게 설명 해주실 수 있나요?

답변 1

답변을 작성해보세요.

0

window.pageYOffset으로 스크롤된 위치를 픽셀값으로 가져올 수 있는데요~
그 값에 원하는 값을 곱하거나 나누어서 적용하면 됩니다.
아래처럼 문서 전체 스크롤된 비율을 구해서 그 값을 이용해 transform이나 opacity 등에 이용해 볼 수 있고요.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		body {
			height: 500vh;
			margin: 0;
		}
		.foo {
			position: fixed;
			left: 0;
			top: 0;
			width: 100px;
			height: 100px;
			background: red;
			opacity: 0;
			transform: translateY(100%);
		}
	</style>
</head>
<body>
	<div class="foo"></div>

	<script>
		let scrollRatio;
		const fooElem = document.querySelector('.foo');
		window.addEventListener('scroll', () => {
			scrollRatio = window.pageYOffset / (document.body.clientHeight - window.innerHeight);
			fooElem.style.transform = `translateY(${100 - (100 * scrollRatio)}%)`;
			fooElem.style.opacity = scrollRatio;
		});
	</script>
</body>
</html>