inflearn logo
강의

Course

Instructor

Scroll interaction that even beginners can create. Part 1 JavaScript

2-1 [Code Explanation] Building the Basics! How to Calculate the Percentage of Distance to Move

IntersectionObserver

255

mingmi274111

4 asked

0

안녕하세요 선생님~ 강의 7강처럼 고정된 컨텐츠로 포트폴리오를 만들려고 하고있습니다.

다만 IntersectionObserver 내장함수를 이용하여 백분율을 좀 더 쉽게 구하는 방법이 있을까요? 몇일째 공부중인데, 잘 모르겠어서 질문드립니다 ㅜ

jquery 인터랙티브-웹 HTML/CSS javascript

Answer 1

1

ggangcoding162118

안녕하세요 :)

IntersectionObserver는 수업에 포함된 내용이 아니라 간단하게 설명드리겠습니다 :)

IntersectionObserver로 백분율을 구하기 위해선

1.옵션 threshold에 한계점을 지정해 객체를 생성하고 콜백 함수를 등록합니다

2.observe 메소드에 백분율 엘리먼트를 지정하고

3.콜백 함수를 통해 백분율을 받아 구할 수 있습니다

아래 간단한 예제를 참고하면 될 것 같습니다

<body>
	<style>
	* {
		padding: 0;
		margin: 0;
	}
	.box {
		position: relative;
		display: flex;
		width: 200px;
		height: 200px;
		padding: 10px;
		margin: 0 auto;
		background-color: mediumpurple;
		margin-bottom: 10px;
		justify-content: center;
		color: #fff;
	}
	</style>
	<div style="height: 110vh"></div>
	<div id="box1" class="box"></div>
	<div style="height: 110vh"></div>
	<script>
		var observer = new IntersectionObserver(callBack, { //1
			threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]
		});
		observer.observe(document.querySelector('#box1')); //2

		function callBack(entries) { //3
			entries.forEach(function(entry) {
				var percent = (entry.intersectionRatio * 100) + "%";
				entry.target.innerText = percent;
				console.log(percent);
			});
		}
	</script>
</body>

 

더 자세한 내용은 api를 참고해 보시고 브라우저별 버그가 있을 수 있으니 충분한 테스트를 진행하길 추천드립니다 :)

그럼 또 다른 궁금증이 생기면 문의주세요

 

0

mingmi274111

정말 감사합니다 ㅠㅠ

다음강의 언제나오나요 다음강의는 인터렉티브한 전체적인 웹사이트였으면 좋겠네요

0

197

1

반응형에 대해 질문이 있습니다 !

0

367

1

날짜 카운트를 활용하여 시간으로 적용해볼 수 있나요?

0

379

1

함수가 정의되기 전에 함수 호출

0

344

1

섹션12 보너스 챕터에 관한 질문입니다!

0

468

1

5-3-1 강좌 섹션 질문 합니다.

0

312

1

죄송합니다만 해당 프로젝트를 리엑트로 수정해서 만들어보고있는중에 질문드립니다.

1

463

3

화면 높이 관련 질문 있습니다.

1

433

1

선생님

0

370

1

5-2 vanilla.html 질문합니다.

0

422

1

5-3-2 질문입니다.

1

293

1

5-2 추가 질문이요

0

346

2

5-2 ! 질문이요.

0

266

1

안녕하세요!

0

273

1

질문드립니다.

1

366

2

질문드립니다.

0

1665

3

색션6강 카운트관련 문의드립니다!

0

239

1

섹션5 관련 질문드립니다.

0

261

1

setProperty 를 재활용 하고싶습니다.

0

210

1

offsetheight와 scrollheight

0

398

1

완성된코드를 그대로 가져왔는데 크기가 이상해요

0

428

2

2:56에 10씩 증가시키는건 어떻게 하신건가요?

0

316

1

<script>에 $(function(){})으로 감싸준 이유

0

207

1

5섹션예제 전부 깨져요 ㅠ

0

243

1