<div>
<p>스크롤을 해보자!!</p>
<div class="wrapper">
</div>
<div class="wrapper">
</div>
<div class="wrapper">
</div>
<div class="wrapper">
</div>
</div>
div {
text-align: center;
font-size: 50px;
font-weight: bold;
}
.wrapper {
width: 150px;
height: 150px;
margin-bottom: 100px;
margin-left: auto;
margin-right: auto;
background-color: red;
opacity: 0;
transition: opacity 0.5s;
}
.wrapper.visible {
opacity: 1;
}
function isElementInViewport (el) {
var rect = el.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
}
window.addEventListener('scroll', () => {
document.querySelectorAll('.wrapper').forEach((wrapper) => {
if(isElementInViewport(wrapper)){
wrapper.classList.add('visible');
} else {
wrapper.classList.remove('visible');
}
});
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.