강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của mingmi274111
mingmi274111

câu hỏi đã được viết

Tương tác cuộn mà ngay cả người mới bắt đầu cũng có thể tạo ra. Phần 1 JavaScript

2-1 [Giải thích Code] Củng cố kiến thức nền! Cách tính phần trăm khoảng cách di chuyển

IntersectionObserver

Viết

·

252

0

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

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

jquery인터랙티브-웹HTML/CSSjavascript

Câu trả lời 1

1

ggangcoding162118님의 프로필 이미지
ggangcoding162118
Người chia sẻ kiến thức

안녕하세요 :)

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를 참고해 보시고 브라우저별 버그가 있을 수 있으니 충분한 테스트를 진행하길 추천드립니다 :)

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

 

mingmi274111님의 프로필 이미지
mingmi274111
Người đặt câu hỏi

정말 감사합니다 ㅠㅠ

Hình ảnh hồ sơ của mingmi274111
mingmi274111

câu hỏi đã được viết

Đặt câu hỏi